SDL_SemWaitTimeout

名字

SDL_SemWaitTimeout使一台信號機不能動但是至一指定最大時間僅不睡覺等候

概要

使用
SDL;

功能SDL_SemWaitTimeout sem:PSDL_sem;ms:UInt32:整數;

描繪

SDL_SemWaitTimeout一varient隨著一最大暫停價值有 SDL_SemWait.如果信號機的價值指向前是在sem旁邊它(超過零)正量原子地將減少信號機價值和歸還0,除此之外它將不睡覺等候暫停試圖使信號機不能動的毫秒如果可能的話,自在一些月台上它是透過在一忙碌圈中每一個毫秒徵求信號機的意見執行以來,這個功能是要被避開.

SDL_SemWaitTimeout以後是成功,信號機能被發佈和它的計數原子地通過一向SDL_SemPost成功呼叫增加.

回程價值

如果成功使信號機不能動,歸還0或者或者SDL_MUTEX_TIMEOUT或者 -1如果暫停時期被超過或者有一錯誤,respectivly.

如果不成功使信號機不能動,信號機將是未改變的.

例子

茲就:=SDL_SemWaitTimeout((my_sem,WAIT_TIMEOUT_MILLISEC);

如果那時(茲就=SDL_MUTEX_TIMEOUT)
開始
隨之發生:=TRY_AGAIN;
末端;

如果那時(茲就=-1)
開始
隨之發生:=WAIT_ERROR;
末端;
.
.
.
.
SDL_SemPost((my_sem);

也注意到

SDL_CreateSemaphore ,SDL_DestroySemaphore ,SDL_SemWait, SDL_SemTryWait,SDL_SemPost ,SDL_SemValue