Re: Sporadic process issue on Magritte tests

Holger Freyther <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.gnu.general
Message-ID <[email protected]>
> On 16 Apr 2015, at 04:01, Paolo Bonzini <[email protected]> wrote:
> 


> The point of using absolute deadline is exactly to match deadlines as
> close as possible ("perfect" if the syscall ultimately lets you specify
> an absolute deadline).  Relative deadlines become less and less accurate
> the more load you have, because you can be preempted away between the
> computation of the deadline and the setting of the timer.
> 
> This is particularly relevant with cooperative multithreading such as
> Smalltalk’s.

Okay but the current implementation appears to be improvable.

VMpr_Processor_signalAtNanosecondClockValue
  * Get current time and then check if to signal directly or queue
  _gst_async_timed_wait
   * Cancel the current alarm
   * Schedule waiting for the new SIGALRM
   * Call _gst_sigalrm_at
   _gst_sigalrm_at
      * I don’t know how linux behaves with TIMER_ABSTIME if it
        is in the past but apparently it does behave (hurray!)
      * Call _gst_get_ns_time
      * And check how many seconds to sleep

After going through the list it is only inefficient for the non
timer_settime case. So I withdraw my comment. :)

holger


_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.