PID (Program ID) Overflow

We have an embedded system which runs a crontable. After about 2 months in
the field, the PID overflows (>32767). In one unit, it wrapped around once,
but on the second time, 2 months later, there was a failure on the third new
PID assignment after the roll-over. On another unit, it failed on the first
wrap-around, and on exactly the third PID also. (Coincidence?)

The “failure” is several programs (both QNX and our own) are terminated (no
longer running when you do a sin). Those programs include emu387, emu87_32
(our SBC does not have a hardware floating point processor), and
tracelogger (which is how we know that the PID’s wrapped around), plus 3 of
our programs.

We are speculating that possibly a new PID assignment conflicts with an
existing one (a low number one that was assigned upon the initial boot up),
causing the program terminations.

Has anyone seen this or can shed some light on the problem?

Ed Schwartz