> I'm afraid to say that you'll have to post a short reproducer here > before I can look at this further ...
I'm not sure this is the same issue. Look at this test code: ================================ let threads_counter = ref 0 let counter_mutex = Mutex.create () let send_data data size = let fd = Unix.openfile "/dev/null" [ Unix.O_WRONLY ] 0o644 in ignore (Unix.write fd data 0 size); Unix.close fd let read_data _ = let fd = Unix.openfile "/dev/random" [] 0o644 in let buffer = String.create 1024 in let br = Unix.read fd buffer 0 (Random.int 1000) in Unix.close fd; ignore (Unix.select [] [] [] 0.1); send_data buffer br let do_work _ = read_data (); Mutex.lock counter_mutex; decr threads_counter; Mutex.unlock counter_mutex let _ = while true do Mutex.lock counter_mutex; if !threads_counter < 20 then begin incr threads_counter; ignore (Thread.create do_work ()); end; Mutex.unlock counter_mutex; done; Unix.sleep 100 ================================ It checks if thread count is less than 20. If so, new thread is created and threads_counter incremented. After thread is done, threads_counter is decremented. After 5 minutes of work, RSS usage was grown from 3300KB to 5670KB on FreeBSD 7.0 and from 976KB to 1200KB on Linux. In both cases Ocaml 3.10.2 was used. _______________________________________________ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs