No, it’s not about refridgerators
I have some real-time processes with a high priority (27-29). Now while
developing, if I have a bug and enter and endless loop, the whole system
freezes. I can’t even do CTRL-C. This is the expected behavior, but it’s
annoying - you’ll have to reboot.
I’m thinking of writing a little utility that runs in the background, at
priority 63. It shouldn’t take much processing time, but it should be able
to detect the “freeze” state, and then read the process table, look at the
highest priority thread, and lower this thread’s priority to 10. Then you
should get back control again.
If it’s not possible to detect the “freeze” state, maybe it’s possible to
install some interrupt handler for the keyboard, i.e., you would hit some
key to trigger the lowering of the priority of the bad process.
I’m curious about your ideas. Thanks in advance
Markus
I vaguely remember Igor’s (?) solution that mentioned
having tcp/ip ports of different priorities that will allow
an external connection. A simple program with mouse support
running (and waiting) with a higher priority (along with the
mouse driver) would do. Does the program being tested require
the keyboard at all?
ako
Markus Loffler wrote:
No, it’s not about refridgerators >
I have some real-time processes with a high priority (27-29). Now while
developing, if I have a bug and enter and endless loop, the whole system
freezes. I can’t even do CTRL-C. This is the expected behavior, but it’s
annoying - you’ll have to reboot.
I’m thinking of writing a little utility that runs in the background, at
priority 63. It shouldn’t take much processing time, but it should be able
to detect the “freeze” state, and then read the process table, look at the
highest priority thread, and lower this thread’s priority to 10. Then you
should get back control again.
If it’s not possible to detect the “freeze” state, maybe it’s possible to
install some interrupt handler for the keyboard, i.e., you would hit some
key to trigger the lowering of the priority of the bad process.
I’m curious about your ideas. Thanks in advance
Markus
Here is what I did:
Start inetd at priority 63. (we only use telnet for debbuging purposes)
Start a shell at priority 63 on a console reserved for debugging.
“Markus Loffler” <loffler@ces.clemson.edu> wrote in message
news:9g902i$sm4$1@inn.qnx.com…
No, it’s not about refridgerators >
I have some real-time processes with a high priority (27-29). Now while
developing, if I have a bug and enter and endless loop, the whole system
freezes. I can’t even do CTRL-C. This is the expected behavior, but it’s
annoying - you’ll have to reboot.
I’m thinking of writing a little utility that runs in the background, at
priority 63. It shouldn’t take much processing time, but it should be able
to detect the “freeze” state, and then read the process table, look at the
highest priority thread, and lower this thread’s priority to 10. Then you
should get back control again.
If it’s not possible to detect the “freeze” state, maybe it’s possible to
install some interrupt handler for the keyboard, i.e., you would hit some
key to trigger the lowering of the priority of the bad process.
I’m curious about your ideas. Thanks in advance
Markus