in reply to Re^5: How can I force thread switching?
in thread How can I force thread switching?
Thanks for the eval { ... } suggestion, I'll experiment.
The reason why I use my own thread ids is I want to be 100% sure they lie in 1..number_of_threads range (0 is used for scrolling messages).
What is my concern?
Once again, I did not give the full picture.
As soon as I start multi-thread operation, the screen is split into an upper scrolling region and a lower non-scrolling status area where each line "belongs" to a thread.(*)
Thus, I have the traditional scrolling information area for routine messages and a steady area where "accidents" can be shown for a longer period of time. Of course, a reminder summary is printed when everything is done.
Now, since my thread id is used to index the private line, this id MUST stay in the desired range.
Your Q implementation is exactly what I need. Since i'm not the only one to need this feature, I wonder why this is not included in the queue package. All your arguments make great sense. My concern is speed (I already mentioned that the whole process improved from 2:30 hours to 57 minutes) and I'd like to squeeze all inefficiencies out of my code, but there are very clumsy implementations in other sections (notably when it comes to parsing text).
(*) This heavily uses ANSI escape codes. I made the assumption current terminal emulations implement the most usual sequences (according to Wikipedia) and avoided "cute" sequences tied to a specific implementation. I allowed back/foreground colours and cursor addressing.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^7: How can I force thread switching?
by BrowserUk (Patriarch) on Sep 30, 2013 at 13:29 UTC |