Re: glib: processing events in multiple threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-04-30 at 09:09 +0000, Andy Spencer wrote:
> On 2013-04-30 10:42, Patrick Ohly wrote:
> > In SyncEvolution, I am using a library with synchronous method calls
> > which is unaware of glib.
> > ...
> > The real solution would be a g_main_loop_run_if_running() which
> > atomically checks the flag and returns immediately if false. Is
> > something like that possible with the current API, or are there other
> > solutions to the problem?
> 
> Hi, I might not understand your situation fully, but in my code I've
> generally had a hard time doing anything with the glib main loop
> directly and have found it easier to find other ways to do things.
> 
> In my case, I'm normally processing some data in a thread using library
> calls, then when it finishes I want to display the data to the user.

That implies going fully multithreaded, including explicit passing of
information back and forth between threads. I was hoping to avoid that.

> You might also want to take a look at GThreadPool's and GAsyncQueue's,
> if you haven't done so already. They can sometimes help avoid a few race
> conditions.

I'm aware of these classes. I found GThreadPool very hard to use
correctly. For example, when I allocate a struct and pass it to
g_thread_pool_push(), what do I do if the method returns false?
Sometimes I have to delete the struct, sometimes not, and it is close to
impossible to tell reliably from the returned information. But let's not
get sidetracked...

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list




[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux