No vi eso que decis, pero en general estaria bueno usar _wincall :)...

2010/8/30 Jose Gregoris <[email protected]>

> 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]<http://mc/[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]<http://mc/[email protected]>
> > To unsubscribe from this group, send email to clubSmalltalk+
> [email protected]<http://mc/[email protected]>
> >
> > http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to 
> [email protected]<http://mc/[email protected]>
> To unsubscribe from this group, send email to clubSmalltalk+
> [email protected]<http://mc/[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]<clubsmalltalk%[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