Re: Which OT Sample To Use?
Re: Which OT Sample To Use?
- Subject: Re: Which OT Sample To Use?
- From: Bob Bradley <email@hidden>
- Date: Sun, 09 Feb 2003 07:41:37 -0800
- Newsgroups: apple.lists.macnetworkprog
- Organization: Uh huh huh...It says Organ
- Xref: forum.apple.com apple.lists.macnetworkprog:1752
In article <email@hidden>,
Quinn <email@hidden> wrote:
>
The problem is that 9.1 can mess up the RPC associated with
>
MPRemoteCall, which causes the MP thread never to unblock. I might
>
have been able to work around this in OTMP itself, but other MP
>
services (such as MPAllocateAligned!) use MPRemoteCall, so there was
>
little point.
One way to workaround this problem on Mac OS 9.1 is to T-Vector patch
WakeUpProcess and do nothing if MPTaskIsPreemptive returns true and just
call through to the original if false.
The root problem was that someone had added a call to WakeUpProcess
inside MPRemoteCall to reduce latency, but this introduced a race
condition because the system trap patches WakeUpProcess (as of 9.0) such
that when it is called from an MP task, it signals the blue task to
execute it. This signaling process uses the same mechanism as remote
calls (a single element, per-task RPC queue) so if it hit that window,
it could steal the element and prevent a remote call from completing
I changed the remote call stuff to do the WakeUpProcess asynchronously
to fix the problem (post 9.1) and not lose the performance intention of
the one who added the WakeUpProcess call, but you can also use a
T-Vector patch to avoid the race condition if you're running on Mac OS
9.1.
_______________________________________________
macnetworkprog mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/macnetworkprog
Do not post admin requests to the list. They will be ignored.