Threadek és shell futtatás

Adott egy Solaris 10, futna rajta egy többszálú perl script. A feladatnak része hogy a szálaknak más külső programokat kell futtatniuk.
Egy ideig fut is gond nélkül aztán segmentation fault.
Rá kellett jöjjek, hogy az open3, system függvények forkolnak, az meg nem thread safe.

Röviden a kérdés: perl alatt lehetséges-e bármilyen módon többszálú programból külső programot hívni ... Nem kell visszatérési érték, nem kell in,out,err. csak az hogy blokkoljon (a külső progi lefutása után térjen vissza).

Elméletileg (pl c-ben ez lehetséges -> a popen threadsafe).

Amivel már próbálkoztam:
- popen external modulban
- sima open pipeolva
- open, open3 rész lock-olása (egyszerre csak 1 szál hajthatja végre)

és még sok kétségbeesett marhaság...

Tud valaki megoldást ?