It seems I’ve been bitten by another Relay(), uhm, bug/undocumented
feature. Here’s the scenario… There are four types of processes
involved (L) a low priority utility, (H) a higher priority utility, (S)
a server process with _PPF_PRIORITY_FLOAT turned on, and (D) a
dispatcher process that Relay()s messages to a number of different (S)
type server processes.
My hope was that when (L) or (H) type processes send messages to the (D)
process and are subsequently Relay()ed to an appropriate (S) type
process, the (S) processe’s priority would be set to that of the
originating Send()er.
But, it just plain doesn’t seem to work. If an (L) or (H) process
Send()s directly to an (S) process, it does work.
It seems I’ve been bitten by another Relay(), uhm, bug/undocumented
feature. Here’s the scenario… There are four types of processes
involved (L) a low priority utility, (H) a higher priority utility, (S)
a server process with _PPF_PRIORITY_FLOAT turned on, and (D) a
dispatcher process that Relay()s messages to a number of different (S)
type server processes.
My hope was that when (L) or (H) type processes send messages to the (D)
process and are subsequently Relay()ed to an appropriate (S) type
process, the (S) processe’s priority would be set to that of the
originating Send()er.
But, it just plain doesn’t seem to work. If an (L) or (H) process
Send()s directly to an (S) process, it does work.
Anyone know of a fix and/or work around?
I’d try setting _PPF_PRIORITY_FLOAT for the relaying process.
It seems I’ve been bitten by another Relay(), uhm, bug/undocumented
feature. Here’s the scenario… There are four types of processes
involved (L) a low priority utility, (H) a higher priority utility, (S)
a server process with _PPF_PRIORITY_FLOAT turned on, and (D) a
dispatcher process that Relay()s messages to a number of different (S)
type server processes.
My hope was that when (L) or (H) type processes send messages to the (D)
process and are subsequently Relay()ed to an appropriate (S) type
process, the (S) processe’s priority would be set to that of the
originating Send()er.
But, it just plain doesn’t seem to work. If an (L) or (H) process
Send()s directly to an (S) process, it does work.
Anyone know of a fix and/or work around?
I’d try setting _PPF_PRIORITY_FLOAT for the relaying process.
It’s also implemented as a macro in sys/kernel.h … any chance the
“bug” could be fixed by patching the inline code there? Wink - wink,
nudge - nudge?
Nope.
The code in the header file points to another bit, which points to
__relay(), which will be a jump into the kernel to do the real work.
(If you take a look at kernel16.h, you’ll have an idea of how that
was done for 16-bit programs, the 32-bit programs are a bit different,
but it still will be a switch to kernel space to do the work.)
The fix would have to be done in the kernel-side implementation.
With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>
On Thu, 24 Feb 2005 10:31:54 -0500, Adam Mallory <amallory@qnx.com> wrote:
Done. I’ve got an experimental version of Proc32 if you want to try it.
If so, where should I send it?
I’d like to have it too. The address is real one.