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