l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
December 2: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2003 Dec 18 18:52

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Xlib event loop
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Xlib event loop



On Fri, Dec 19, 2003 at 11:47:00AM +1100, Julie Russell wrote:
> Hi Everyone,
> 
> I am programming in c++ and xlib using common c++ threads. I want to sleep a
> thread (which I have initiated as detached). During that process I want to
> recieve events from the xlib event loop and if triggered, interrupt the
> sleeping thread, or if not interrupted, have the thread wake up on it's own
> after 20 seconds. The problem is, while that thread is asleep, for some
> reason, my event loop appears to be blocked. How can I sleep a thread so
> that the loop doesn't block and then interrupt it cleanly. Why does the xlib
> event loop appear to be blocked during this process.

I can think of how I would do this in Win32 There is a API function
called PeekMessage() which "peeks" at the pending message waiting but
does not block. I would use that, but for sleeping the thread, use
WaitOnMultipleObjects().

So, if there is a similar function for xlib which allows just a "peek,"
I would use it instead so that the thread doesn't block there. Then
use the pthread_cond_timeout() function to sleep. A signal to the
conditional object terminates the thread loop then.

I read somewhere that X likes all X-related calls to happen in just one
thread. It could be that when you read the next event, it blocks because
there is other X activity in the other thread? Just a guess, really.

> 
> Thanks in advance,
> Julie.
> 
> 
> 
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech

-- 
R. Douglas Barbieri
doug@dooglio.net
http://www.dooglio.net

GPG Fingerprint : FE6A 6A57 2B95 7594 E534  BFEE 45F1 9E5E F30A 8A27
MIT.edu recv-key: C55B91D4
GPG Public key  : http://www.dooglio.net/dooglio.asc

Attachment: pgp00009.pgp
Description: PGP signature



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.