From: Vladimir T. <vtz...@gm...> - 2011-02-14 19:09:11
|
IMO, the only major thing left to be implemented are thread safe hash tables. There are two approaches to accomplish this: 1. have lock on hash tables operations (e.g. add :synchronized param to make-hash-table and ensure no segfault may happen with or without it). 2. re-implement entirely hash tables. (1) while easier is not good according to me. This will cause performance issues in clos (internally it uses hash tables) - even make-instance should (most probably) obtain lock internally. (2) is the way to go, IMO. I think we should replace current hash tables with lock-free open-addressing ones like described in: http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf. CCL hash tables implementation is based on this as well. The hardest part in this reimplementation is integration with GC because of weak relations. I've started to implement (2) but in last year I had almost no free time to spend on it :(. There will be more issues with mt of course - but not so major ones as hash tables. Vladimir PS: currently there is problem with generational gc and heap holes filling - hope this week to fix it. the problem can be easily observed when some threads perform socket i/o from slow server and other worker threads trigger GC frequently. On 2/13/11, Sam Steingold <sd...@gn...> wrote: > Vladimir, > I think we should create a clisp/mt project for the google Summer of Lisp. > IIUC, the only remaining hurdle is MT-safe hash tables, and this sounds > like a good student project. > Could you please write a brief description of what needs to be done? > Thanks! > -- > Sam Steingold (http://sds.podval.org/) on Ubuntu 10.04 (lucid) > http://memri.org http://thereligionofpeace.com http://mideasttruth.com > http://truepeace.org http://iris.org.il http://pmw.org.il http://camera.org > XFM: Exit file manager? [Continue] [Cancel] [Abort] > |