Re: long term planning

  • From: <tpgww@xxxxxxxxxxx>
  • To: emelfm2@xxxxxxxxxxxxx
  • Date: Sun, 29 Sep 2013 07:45:36 +1000

On Sat, 28 Sep 2013 17:49:49 +0200
Liviu Andronic <landronimirc@xxxxxxxxx> wrote:

> > I've seen some comment to the effect that efl is not thread-safe.
> >
> What do you mean by this?

In efl's specific case, I can't be sure.

Typically this phrase means it's not safe for different threads to use the same 
functionality (usually, call the same function) at times which overlap. This is 
most likely due to potential or actual change of shared/common data. There are 
mechanisms to 'block' such overlaps, but they may not be implemented, or if 
they're used improperly, they can cause a freeze.

Sometimes there's a related problem, if the functionality is used recursively 
e.g. a function calls itself. This is easy to manage if the recursion is easy 
to spot, but code-paths can be quite complex, and hard to test/debug.

 What practical issues does this pose for a
> potential future rewrite in EFL?

All actions (core and plugins) are run in a separate thread (actually, one 
thread per actions-queue). Typically they involve some use of gtk.

All filelist updates are done in a separate thread. Those definitely use gtk.

If we're happy enough to abandon multi-threads, that might lead to a different 
choice of future strategy.

Regards
Tom


-- 
Users can unsubscribe from the list by sending email to 
emelfm2-request@xxxxxxxxxxxxx with 'unsubscribe' in the subject field or by 
logging into the web interface.

Other related posts: