为什么以下代码为线程安全函数,但是不是可重入函数。
static int *sharedID;
int* threadsafe_getID( char* name )
{
int *unsharedID;
P( &mutex );
sharedID = notThreadsafe_getID( name );
unsharedID = sharedID;
V( & mutex);
return unsharedID;
}
可重入函数不是强调具有再现性吗?这个代码是不是不具有再现性?如果是不具有再现性,是为什么呢?
sharedID 可以被同文件内的其它函数改变