[squeak-dev] Starting processes from Squeak makes Raspbian
unwilling to start another process
herbertkoenig at gmx.net
Sat Feb 7 18:46:43 UTC 2015
now that I noticed the zombies I can experiment much faster so here some
Stopping Squeak removes all Zombies. Each sensor event creates 3
Zombies, two for the I2Csends, one for the I2Cread.
Sending the PipeableOSProcess instances #closePipes then #release
Sending the ExternalUnixProcess instances #terminate doesn't help either.
Sending an additional PipeableOSProcess>>unixCommandPipeLine doesn't add
a Zombie but returns ''.
PipeableOSProcess>>tkExample works fine and doesn't add Zombies.
So is it a problem of I2Ctools? Should I try other Linux commands?
Am 07.02.2015 um 18:11 schrieb Herbert König:
> I managed to make Raspbian unwilling to open any new process. Neither
> in the X session, nor from Squeak nor from a SSH session.
> It seems I create Zombie processes (what is that, in the SSH session I
> ran top and it reports thousands of zombies).
> What I do: I poll a GPIO pin every 100ms. When it is high I query I2C
> (PipeableOSProcess command: 'i2cget -y ', busNo, ' ', address) output
> and when I find a certain bit set, I switch on some LEDs via:
> current := ExternalUnixOSProcess command: 'i2cset -y ', busNo, ' ',
> address, ' ', aString.
> OSProcess thisOSProcess unregisterChildProcess: current. "This doesn't
> unregister the process?????"
> current := nil.
> I found 2700++ instances of ExternalOSProcess, emptied the Dictionary
> via UnixProcess>>unregisterChildProcess and it stopped when it
> accumulated to another 900+ instances.
> This ran for half a day until It can't start another process. First I
> thought this was the Raspbian update for the PasPi B2 but now I
> reproduced it on a Pi A+ last updated mid January.
> Having read Wikipedia on Zombie Process it seems, that I should try to
> kill each process I started?
> What do I do to the PipeableOSProcess? closePipes? release?
More information about the Squeak-dev