정확히 대응하는 건 없는 것 같습니다. (누군가 나타나셔서 "pthread_xxx() 함수입니다"라고 하시면 :oops: ) 누군가의 시도도 있었나 봅니다.
wine 소스에서 SuspendThread() 루틴을 살펴봤는데 중복 호출 처리를 위해 suspend count 처리하는 루틴이랑 스레드에게 시그널 보내는 루틴이 전부네요. 대략 pthread_kill()로 SIGSTOP이랑 SIGCONT 보내는 걸로 흉내를 낼 수 있지 않을까 싶습니다. 중복 호출에 대한 처리까지 고려를 해주려면 좀더 복잡하겠지만, 그게 아니라면
Thread를 Suspend시키기 위해서 SIGSTOP을 날릴 경우
커널에 따라(?) 해당 Thread가 아니라 해당 어버이
Process가 Kill되는 경우가 있던데...
그래서, 대신 SIGTSTP(터미널에서 Ctrl-Z)를 사용하니까
Thread Suspend가 됩디다.
Thread를 Suspend시키기 위해서 SIGSTOP을 날릴 경우
커널에 따라(?) 해당 Thread가 아니라 해당 어버이
Process가 Kill되는 경우가 있던데...
그래서, 대신 SIGTSTP(터미널에서 Ctrl-Z)를 사용하니까
Thread Suspend가 됩디다.
정확히 대응하는 건 없는 것 같습니다. (누군가 나타나셔서 "pthrea
정확히 대응하는 건 없는 것 같습니다. (누군가 나타나셔서 "pthread_xxx() 함수입니다"라고 하시면 :oops: ) 누군가의 시도도 있었나 봅니다.
wine 소스에서 SuspendThread() 루틴을 살펴봤는데 중복 호출 처리를 위해 suspend count 처리하는 루틴이랑 스레드에게 시그널 보내는 루틴이 전부네요. 대략 pthread_kill()로 SIGSTOP이랑 SIGCONT 보내는 걸로 흉내를 낼 수 있지 않을까 싶습니다. 중복 호출에 대한 처리까지 고려를 해주려면 좀더 복잡하겠지만, 그게 아니라면
정도로도 쓸만하지 않을까요?
$PWD `date`
pthread_kill() + SIGSTOP
Thread를 Suspend시키기 위해서 SIGSTOP을 날릴 경우
커널에 따라(?) 해당 Thread가 아니라 해당 어버이
Process가 Kill되는 경우가 있던데...
그래서, 대신 SIGTSTP(터미널에서 Ctrl-Z)를 사용하니까
Thread Suspend가 됩디다.
pthread_kill() + SIGSTOP
Thread를 Suspend시키기 위해서 SIGSTOP을 날릴 경우
커널에 따라(?) 해당 Thread가 아니라 해당 어버이
Process가 Kill되는 경우가 있던데...
그래서, 대신 SIGTSTP(터미널에서 Ctrl-Z)를 사용하니까
Thread Suspend가 됩디다.
pthread_cond_wait/pthread_con
pthread_cond_wait/pthread_cond_signal 이 함수라면 원하시는 작업을 비슷하게나마(?) 해주지 않을까 싶네요.
wait은 sleep 시켜주고, signal은 잠 들어 있는 놈들중에 하나를 임의로 깨워주는 함수입니다.
------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.
------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.
댓글 달기