Hola Andres, gente

Gracias por sus respuestas.
Es notorio que lo que comentas no es muy conocido pues estaba viendo un ejemplo 
de openGL en VW y usan el #GetLasError como lo hacia yo.
En dolphin esta usado en varios lugares.

saludos kiko

--- El vie 27-ago-10, Andres Valloud <[email protected]> escribió:

De: Andres Valloud <[email protected]>
Asunto: Re: [clubSmalltalk] Dolphin X6 getLastError
Para: [email protected]
Fecha: viernes, 27 de agosto de 2010, 21:56

Por eso en DLLCC hay un pragma para llamar a una funcion de Windows
devolviendo el GetLastError() si la funcion falla... el pragma es
_wincall.  Para *nix, tambien hay _syscall para poder obtener el valor
de errno asociado a la funcion que acabas de llamar via el FFI.

Lamentablemente, en VisualWorks hay un metodo para llamar a
GetLastError() directamente en la clase Win32SystemSupport.  Eso es un
error y me gustaria que para la version nueva eso no este mas :)...

2010/8/27 Gerardo Richarte <[email protected]>:
> On 08/26/2010 06:06 PM, Andres Valloud wrote:
>> En el caso general, como harias para detectar que otro proceso
>> interrumpio al proceso que esta por llamar a GetLastError(),
> si, no se puede me parece en el caso general. Por otro lado, no
> es solo si llamaron a GetLastError(). Si llamaron a cualquier otra
> función de Windows, que resetea el GetLastError() también.
>
> El GetLastError() es único por cada thread de Windows, si dos
> procesos nativos se interrumpen mutuamente, igual el GetLastError()
> de cada uno está a salvo. El tema es que en Smalltalk pasan dos cosas:
>
> . green threads, donde un solo thread nativo aloja más de un hilo de
> ejecución, y entonces se puede corromper el last error.
> . La VM también hace cosas entre bytecode y bytecode, método y
> método, etc. Si entre que llamas a la API y llamas a GetLastError(),
> por ejemplo, caé un GC, y el GC le devuelve memoria al OS (VirtualProtect(),
> mmap(), etc). eso va a cambiar el GetLastError().
>
> como dijo Andres de entrada, no es seguro llamar a GetLastError()
> via FFI o algún otro tipo de API call. Y la VM tendría que proveer un
> mecanismo seguro de hacerlo (básicamente, llamar a GetLastError()
> después de cada API call, y guardarlo para uso futuro)
>
>    saludos,
>    gera
>
> --
> 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



      

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a