Hello
I would like to ask if there were any changes in implementing threads between version 7.2 and 7.4 (stable) or rather what exactly has changed? The code of my function (implemented in master):
object _load_thread(string path, mixed ... args) { program prg = _compile(path); string objid; object obj; array(string|int) err;
if (objs[path]) return objs[path];
if (!prg) return 0;
err = catch { obj = prg(@args); thread_create(obj->run); };
if (err) { werror(err[0]); werror(describe_backtrace(err[1])); }
...
works perfectly in version 7.2, it creates suitable number of threads when it is called on a given objects. But the same function called on the same objects in version 7.4 creates only one (first) thread and though the compiler doesn't return any error messages when the function is initialized, threads are not 'loaded'. To check if threads are created I simply: ps aux|grep pike There are no names of threads, just the process is visibly divided into as many threads as the number of objects called in individual call. Could anyone tell me what is the problem?
My system: Linux, Debian, i686
Aron@Valhalla
pike-devel@lists.lysator.liu.se