Any lightweight way for one thread to force another thread to suspend execution?
From: Eric Smith
Date: Fri Jun 20 2008 - 20:32:30 EST
Is there any method for one thread to force another thread to suspend
execution, then later let it resume, that is lighter weight than using
signals? I don't need it to be portable to anything other than Linux.
The suspend needs to be synchronous, but resume doesn't.
What I've thought about so far (but haven't tested) for thread A
to suspend thread B is to use a signal and two pthread conditions:
Thread A Thread B
----------------------- -----------------------
send signal to B
wait on a cond 1
enter signal handler
signal cond 1
wait on cond 2
wake up
do stuff that needs
thread B suspended
signal cond 2
continue wake up
Thanks for any suggestions!
Eric Smith
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/