в соответствии с вышеизложенным спеком, функция f1 может никогда не окончиться. )))
* получается, что разные треды могут полагаться лишь на внешний контракт, т.е. observable behavior, вроде так
Стандарт 2003 года вообще никак не специфицирует работу с тредами. Observable behaviour - это не то, что видят треды друг у друга, а то что видит "внешний наблюдатель", скажем, устройтсво в volatile регистры которого пишет программа или операционная система, функции ввода-вывода которой вызываются.
no subject
Date: 2011-11-12 07:02 pm (UTC)ок. приведу конкретный пример:
external int val;
void somefunc()
{
val=1;
}
void f1()
{
val = 0;
for(;;)
{
somefunc();
if(val)
break;
}
}
в соответствии с вышеизложенным спеком, функция f1 может никогда не окончиться. )))
* получается, что разные треды могут полагаться лишь на внешний контракт, т.е. observable behavior, вроде так
Стандарт 2003 года вообще никак не специфицирует работу с тредами.
Observable behaviour - это не то, что видят треды друг у друга, а то что видит "внешний наблюдатель", скажем, устройтсво в volatile регистры которого пишет программа или операционная система, функции ввода-вывода которой вызываются.