Chinaunix

标题: 请问关于pthread_cleanup_push的问题 [打印本页]

作者: 星之孩子    时间: 2004-11-30 12:00
标题: 请问关于pthread_cleanup_push的问题
void    clean ( void * p )
{
        printf ( "clean()\n" );
}

void *  thread ( void * p )
{

        pthread_cleanup_push( clean, NULL);
        printf ( "thread sleep\n" );
        sleep (10);
        pthread_cleanup_pop(0);
}

int     main ()
{
        pthread_t id;
        pthread_mutexattr_t attr;
        pthread_create ( &id, NULL, thread, NULL );
        printf ( "main sleep\n";
        sleep(3);
        printf ( "cancel thread:%u\n", id );
        pthread_cancel ( id );
        return 0;
}

输出:
thread sleep
main sleep
cancel thread:1082399936

//////////////////////////////////////////////////////////
不明白为何没有输出clean()
也就是pthread_cleanup_push根本不起作用
那位大虾能说说原因吗?
    多谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2