holly:
goto 的问题就是不小心会把顺序弄错
[阅读: 477] 2007-07-04 05:48:29
int pthread_global_init()
{
int rv = 0;
rv = thread_global_init();
if ( rv != 0 )
goto pgi_failed_exit;
rv = mutex_global_init();
if ( rv != 0 )
goto pgi_mutex_failed;
rv = key_global_init();
if ( rv != 0 )
goto pgi_key_failed;
rv = cond_global_init();
if ( rv != 0 )
goto pgi_cond_failed;
return 0;
pgi_cond_failed:
key_global_cleanup();
pgi_key_failed:
mutex_global_cleanup();
pgi_mutex_failed:
thread_global_cleanup();
pgi_failed_exit:
return rv;
} /* pthread_global_init() */