Si hay forwardeo de punteros en el object table, entonces si oneWayBecome: se puede implementar mirando el object table. Si no, hay que mirar todos los object bodies.
Ahora, viste que cuando haces un oneWayBecome: de una clase a otra, las instancias del receptor no se transforman en instancias del argumento?... o que por lo menos no deberian transformarse?... que detalle, no?... 2012/11/19 Esteban A. Maringolo <[email protected]>: > El día 19 de noviembre de 2012 10:39, Angel Java Lopez > <[email protected]> escribió: >> Me imagino respuestas: >> >> - No, los Smalltalks X, Y, Z solo manejan un thread, y todo lo demas son >> "green threads" >> - En el Smalltalk W, hacemos become: multithreading, pero sin controlar nada >> (sin poner locks, semaforos o lo que sea) >> - En el Smalltalk T, tenemos multithread y hacemos un lindo bolonki para >> hacer que el become: sea thread-safe >> - En el Smalltalk S, tenemos multithread y la implementacion interna (object >> table con celda atomica, con pocos datos; o puntero directo, o lo que sea) >> es tal, que el become termina siendo thread-safe por naturaleza >> >> Cual es? > > Habria que ver cual es el soporte de GemStone con respecto al > #become:, AFAIR su uso era bastante limitado. > > En el caso de Dolphin tiene un object-table, y el #become: lo unico > que hace es intercambiar pointers de los cuerpos de los objetos > receptor y argumento, es una operación muy rápida. El #oneWayBecome: > tiene que recorrer toda la object table. > > Igual cuando haces become, y tu objeto estaba en una hashed > collection, y se "convirtió" en un objeto que devuelve un hash > distinto empiezan los quilombos :D > > Yo creo que la "solución" es dartelo sin que sea thread-safe, y hacete cargo > :D > A los smalltalkers no nos gusta el quilombo :) > > Saludos! > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
