How to create client in child thread
ppaalanen at gmail.com
Fri Jun 24 08:45:39 UTC 2016
On Fri, 24 Jun 2016 11:15:32 +0800 (CST)
袁嘉伟 <yuanjw1025 at 163.com> wrote:
> 在 2016-06-23 21:13:28，"Pekka Paalanen" <ppaalanen at gmail.com> 写道：
> >sorry, but I can't make sense from the spaghetti above, nor do I have
> >time to debug your application for you, especially when it has huge
> >parts outside of my expertise (everything about SurfaceManager). If you
> >can create a stand-alone C program that shows the problem, then it
> >might be possible to take a look, but no promises.
> >Also signals will be delivered to random threads unless you
> >specifically block them.
> >I have no idea why wl_display_connect() from a secondary thread would
> I have created a stand-alone C program, which could show the problem.
> It was blocked in wl_display_dispatch this time.I was very helpless.
> I hope you might take a look if you have time.
I could only take a very quick peek for now, but this look a bit
odd to me, as your main() is:
main(int argc, char **argv)
pthread_create(&lifeThread, NULL, &renderFrames, NULL);
You are not waiting for the thread to finish, or even to start,
before you already return from main(). pthread_create() manual says:
The new thread terminates in one of the following ways:
* Any of the threads in the process calls exit(3), or the main thread
performs a return from main(). This causes the termination of all
threads in the process.
So in that light, your program should just quit and not really do
anything. The strange thing is that the thread does not seem to get
terminated, but maybe that is because it is blocked in a polling
Could you fix it to wait for the thread to finish before returning
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 811 bytes
Desc: OpenPGP digital signature
More information about the wayland-devel