On Sat, Nov 6, 2010 at 4:49 AM, Jesse Charbneau <j...@thecharbneaus.com> wrote:
> Hello All,
>  I am working on a project in which I am running into some difficulties.  To 
> provide a brief overview, I have a device that I connect to via RS232 (using 
> termios) and read in a 16 character hex string.  This hex string is a locator 
> of sorts in that it will tell me what hardware based devices have been 
> attached to it.  From there, I take the character string, convert it, and 
> this tells me what I need to enable in the touchscreen interface (using edje 
> mainly).   My first inclination was to use ecore_ipc as I’ve used it to great 
> success in the past, but ran into issues there ( I tried both a timer with a 
> call to just read the line data, and also tried a while).  The while loop of 
> course did not work as I needed the ecore main loop in order to get my IPC 
> functionality going (am I wrong here, is there a better way to approach).  
> This also created timing issues when trying a simple if(fgets.....) as the 
> device sends me a stream every .5 seconds (which will eventually be tuned to 
> be a minimum of 1/10th of a second).  After much fuss (even tried using 
> fifo’s a bit), I settled on using a single process with a fork/pipe approach, 
> but I’ve noticed some performance issues there.  I’ve read around on the net 
> lots, and am not entirely comfortable with threads (I’ve heard much bad juju 
> re: threads), but that seems performance wise much better than fork (from my 
> own testing as well as tables on the net stating similar).  The other piece 
> of the fork problem is that while I can spawn off a separate child to perform 
> the serial i/o work, I still have to get the data back to the main process so 
> have a standard pipe that I have attached a timer to.  I’m sure I’m missing 
> something here, but for the life of me can’t think myself out of this one.
>
> As a research exercise, I’ve been tooling around with pthreads, and it seems 
> like I can spawn a thread that will do my serial work just fine, and have 
> tested both running 1 thread to perform serial work, with 1 thread running 
> ecore based code, but that bombed (I did see the notice regarding EFL not 
> being thread safe, but figured I’d try it out just the same ;-) .  Running a 
> parent that spawned a thread for just the serial work and then continue on to 
> interface code seemed to work ok, but not sure if this is correct or not.  I 
> also found the following link suggesting that threads can be used, but you 
> have to marshall back to the main loop.  That is kind of greek to me, so am 
> hoping some one can review the above and tell me if I’m marching in the right 
> direction, and how to “marshall” back to the main thread?  Also, I noticed 
> reference to Ecore_Thread, but am not familiar with it  and find little 
> documentation for that library.  Can someone suggest some code I can review 
> that makes use of this functionality?
>
> Here is the link regarding some notes to the effect of Ecore_Thread, EFL 
> thread safety:
> http://trac.enlightenment.org/e/wiki/EFLOverview
>
> The quote that got me thinking:
> "Ecore_Thread is a way to divide the work between heavy function that will 
> run in another process and some callback that will be from the mainloop. 
> Making thread use easy with the EFL. If you must spread your work across 
> multiple CPU's for performance, then divide and conquer. split it up into 
> many worker threads that do the bulk of the work without EFL and then marshal 
> back results to the mainloop to update the application state (and GUI) 
> accordingly.”
>
> I also noticed one of the developers introduced Ecore_Pipe, but have seen 
> very little about it, other than the post to the mailing list.  Is that a 
> viable alternative for me?

Look at ecore_thread_feedback_run, ecore_thread_feedback,
ecore_thread_cancel and ecore_thread_check.
-- 
Cedric BAIL

------------------------------------------------------------------------------
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to