Hello.

I'm a Google Summer of Code student working on improving EFM and I
would like to share some thoughts, which my mentor (Nick Hughart) and
I have been discussing.

The thoughts are focused on dealing with slave process. Here goes...

== Slave process  ==
There are two considerations on this:
* We want to be able to run several file operations (like copy, move,
  etc.) at the same time,
* We want to be able to send a progress report and receive abort
  commands in the middle of operation.

In order to achieve this, the following strategy seems reasonable. For
every operation, forced by user, a new slave process will be created.
Inside this process, an idler will scan through the directory tree and 
* find out how much work is there to do (for progress reports) and 
* queue files for a work idler, which will perform the actual
* operation.
After all queued files are worked out, the process will finish itself.

This work idler will do copies and other operations by small chunks,
so IPC messages are able to be sent and received in the middle of
operation.

We will need one process running always for HAL.
====================

There are some thing more think throught:

* File locking
  How to deal with situation, when files in operation are modified
  (deleted, moved, etc.)?
* Handling errors
  What to do with files, when an error occurres? Should everything
  just go back or should the process just stop? How to make operations
  atomic?
* History system
  How to keep track of what was done? How to pass this info from slave
  process to the core? What do do here with errors and abortions?
* Abortions
  What to do when a user forces an abortion? What does this actually
  mean?

I'd love to know what other people are thinking on the above. If
you're against something, please, say. Any ideas how to do these
things will be greatfully appreciated. Even your expectations (from 
user's point of view) on how these should work are welcome.

Thanks in advance,
Fedor Gusev.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to