예제 #1
0
int
ZnkThread_waitEnd( size_t thno )
{
	const size_t current_thno = ZnkThread_getCurrentNo();
	if( current_thno != thno ){
		/***
		 * 現在のスレッドと同じ番号が指定された場合は除外する.
		 * (終了するはずがないので)
		 */
		int result = 0;
		ZnkThreadInfo thinfo = znThreadList_getInfo( thno );
		if( thinfo && thinfo->handle_ ){
			result = waitEnd( thinfo );
		}
		return result;
	}
	return 0;
}
예제 #2
0
파일: main.cpp 프로젝트: tktk/dpdemos.old3
dp::Int dpMain(
    dp::Args &  _args
)
{
    dp::Utf32   title;

    if( _args.size() >= 2 ) {
        title = _args[ 1 ];
    }

    std::mutex              mutex;
    std::condition_variable cond;
    dp::Bool                ended = false;

    auto    windowUnique = dp::unique(
        newWindow(
            title
            , mutex
            , cond
            , ended
        )
    );
    if( windowUnique.get() == nullptr ) {
        std::printf( "ウィンドウの生成に失敗\n" );

        return 1;
    }

    waitEnd(
        mutex
        , cond
        , ended
    );

    return 0;
}