mirror of
https://github.com/open-simh/simh.git
synced 2026-04-28 21:07:43 +00:00
- Changed asynch queue insertion and removal to use a lock free algorithm based only on InterlockedCompareExchangePointer. We can now use this lock free approach on IA64 host systems as well.
- Removed flawed logic which assumed that sim_interval was meaningful when referenced by an asynchronous thread. - Adjust the event_time of events removed from the asynch queue to account for the average time spent on the queue before the event was noticed by the instruction execution thread. - Added a sim_activate_notbefore function which specifies an rtime which is the earliest time the event should fire. - Changed the 'wakeup from idle' logic to force an immediate asynch queue check if the wakeup was not due to a timeout (i.e. it was due to an asynch queue insertion). - Fixed the descrip.mms to build asynchronous support on AXP and IA64 VMS with kernel threads enabled
This commit is contained in:
@@ -626,7 +626,7 @@ for ( ;; ) {
|
||||
}
|
||||
fault_PC = PC;
|
||||
recqptr = 0; /* clr recovery q */
|
||||
AIO_CHECK_EVENT;
|
||||
AIO_CHECK_EVENT; /* queue async events */
|
||||
if (sim_interval <= 0) { /* chk clock queue */
|
||||
temp = sim_process_event ();
|
||||
if (temp)
|
||||
|
||||
Reference in New Issue
Block a user