diff options
author | Reinhard Nißl <rnissl@gmx.de> | 2007-04-12 22:14:06 +0200 |
---|---|---|
committer | Reinhard Nißl <rnissl@gmx.de> | 2007-04-12 22:14:06 +0200 |
commit | b4304f243c6006eec3ca4b4ce2b19cfca703861a (patch) | |
tree | e6b00eb9566334c35b6f1f5285c1cae675c7b821 /m4 | |
parent | c552e457732c3c7b84b66ed8548713be52561487 (diff) | |
download | xine-lib-b4304f243c6006eec3ca4b4ce2b19cfca703861a.tar.gz xine-lib-b4304f243c6006eec3ca4b4ce2b19cfca703861a.tar.bz2 |
Extend ticket system for nonblocking ticket acquiries.
The current code has a race condition which can block arbitrary
threads that call for example xine_get_current_frame() until the
stream gets unpaused again. This can happen when the internal
ticket acquiration collides with a ticket revokation for example
when another thread is going to pause the stream.
There are a few situations where a port ticket needs to be
acquired for calling a port function but where it is absolutely
undesireable to get blocked for an undetermined period of time.
Therefore the ticket system should be extended by nonblocking
functions which allow ticket acquiration even when a ticket
revokation is in progress. And in the case where blocking is
not avoidable, it should simply be indicated that no ticket was
acquired. The caller can then choose to repeat the call at a
later point in time.
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions