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:
August 5: Social gathering
Next Installfest:
TBD
Latest News:
Jul. 4: July, August and September: Security, Photography and Programming for Kids
Page last updated:
2003 Dec 18 21:43

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



Hi there,

What I am doing is I am calling XPutImage from a threaded output class, and
I want to keep it there for 20 seconds, then grab the next image, etc.
However, these images can be interrupted by a keypress event, so while they
are showing, I need to still get events from the event loop. I have my event
handler as a non-threaded singleton class that can just be called when an
event needs to be sent. The images sit on a child window, and the event
handler listens to the parent. Should sleep on a child window of a detached
thread class stop the event loop on the parent? Could it be from what you're
saying that the XImage output is blocking the XEvent? If the sleep process
if blocking it, then I would have to determine another way to count 20
seconds for the blit.

Thanks,
Julie.

> -----Original Message-----
> From: vox-tech-admin@lists.lugod.org
> [mailto:vox-tech-admin@lists.lugod.org]On Behalf Of R. Douglas Barbieri
> Sent: Friday, 19 December 2003 1:14 PM
> To: vox-tech@lists.lugod.org
> Subject: 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
>


_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



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:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.