Each call to XOpenDisplay opens a new communication socket to
the X-server.  Commands sent through this socket need to be serialized.
If you have two threads trying to send data at the same time through
the same socket they will corrupt each other's data.  XInitThreads
enables a lock around the Xlib code that accesses the socket so
that only one thread can send data through the socket at a time.
This generally works fine except that if you pause one thread while
it is in Xlib and has already taken the lock, it will prevent any other
thread from entering Xlib and taking the lock.  Separate display
connections for each thread are the solution to that.

                        Mark.


On Wed, 1 Feb 2006 [EMAIL PROTECTED] wrote:

> Hi
>   u have given a good suggestion but I dont understand if the
>     pausing thread block any other thread trying to use the
>    Xlib with the same display connection then why it is working
>     fine sometimes .
> Thanks
>
>  Separate threads either need to use separate display
> > connections or you need to enable thread mutexes for a shared
> > connection (XInitThreads will enable Xlib's internal mutexes).
> > Note still, that pausing a thread while it's in Xlib can block
> > any other threads also trying to use Xlib with the same display
> > connection.  You'd want to use separate display connections
> > for that.
> >
> >                     Mark.
> >
> > On Tue, 31 Jan 2006 [EMAIL PROTECTED] wrote:
> >
> >>  Hi to all
> >>
> >>
> >> Iam building an kde Application When  I pause the current pthread and
> >>       invoke an dialog in another thread the following error is coming .
> >>
> >> Xlib : unexpected async reply
> >> Xlib :    sequence lost (0x1718e > 0x71a0) in reply to 0x0!
> >> X Error : BadImplementation (server does not implement opertaion) 17
> >>     Major opcode : 20
> >>     MInor opcode : 0
> >>     Resource id  : 0x759d1
> >> The error is coming randomly , not always .
> >>   Can any will help how to come out of this error .
> >>
> >>
> >>  Thanks
> >> _______________________________________________
> >> Devel mailing list
> >> Devel@XFree86.Org
> >> http://XFree86.Org/mailman/listinfo/devel
> >>
> > _______________________________________________
> > Devel mailing list
> > Devel@XFree86.Org
> > http://XFree86.Org/mailman/listinfo/devel
> >
>
> _______________________________________________
> Devel mailing list
> Devel@XFree86.Org
> http://XFree86.Org/mailman/listinfo/devel
>
_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel

Reply via email to