Dolphin X6 getLastError

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Dolphin X6 getLastError

hernanmd
¿Entonces usando DLLCC podés asegurar atomicidad de grano grueso? Te
pregunto porque nunca usé DLLCC y no entiendo si tu problema es
esencialmente de concurrencia, de convención de llamadas o
portabilidad (me imagino que ese _wincall no funciona en Linux :)
Saludos,

Hernán

El día 30 de agosto de 2010 18:17, Andres Valloud
<[hidden email]> escribió:

> Por eso dije que en DLLCC existe el pragma _wincall.  El problema, sin
> embargo, es que a veces tenes que llamar a WSAGetLastError(), o a
> CuchuflitoGetLastError(), o la convencion de indicacion de errores es
> diferente para un DLL que hizo algun otro, y en general no se puede
> andar agregando _mongocall, _juanperezcall y otros pragmas asi tan
> facil.  Para esos, lo mejor es escribir una primitiva chiquita en C y
> llamarla desde la imagen.
>
> 2010/8/30 Hernán Morales Durand <[hidden email]>:
>> El día 28 de agosto de 2010 02:59, Andres Valloud
>> <[hidden email]> escribió:
>>> Yendo un poco mas a fondo... en general el tema con esos pragmas es
>>> que no cubren todas las funciones habidas y por haber.  Por ejemplo,
>>> en Windows cuando usas sockets tenes que llamar a WSAGetLastError() en
>>> vez de GetLastError()... se imaginan que no se puede andar agregando
>>> _wsawincall, _pirulocall, _mongocall etc todo el tiempo para
>>> contemplar todos los casos posibles.  Por eso es que, si la cosa se
>>> pone peliaguda, lo mejor es ni usar un FFI y escribir primitivas
>>> directamente.
>>
>> ¿Qué te impide implementar un mecanismo de sincronización por
>> exclusión mutua o por condición a nivel FFI?
>>
>> Hernán
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to [hidden email]
>
> http://www.clubSmalltalk.org

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Dolphin X6 getLastError

Andres Valloud-5
Con DLLCC y el pragma _wincall, si la funcion que llamas falla,
entonces la VM llama a GetLastError() y la primitiva que llama
funciones de C falla devolviendo una pseudo variable temporal que
contiene el codigo que devolvio GetLastError().  Como todo eso ocurre
en el mismo thread, entonces es atomico.  En *nix hay _syscall.

2010/8/30 Hernán Morales Durand <[hidden email]>:

> ¿Entonces usando DLLCC podés asegurar atomicidad de grano grueso? Te
> pregunto porque nunca usé DLLCC y no entiendo si tu problema es
> esencialmente de concurrencia, de convención de llamadas o
> portabilidad (me imagino que ese _wincall no funciona en Linux :)
> Saludos,
>
> Hernán
>
> El día 30 de agosto de 2010 18:17, Andres Valloud
> <[hidden email]> escribió:
>> Por eso dije que en DLLCC existe el pragma _wincall.  El problema, sin
>> embargo, es que a veces tenes que llamar a WSAGetLastError(), o a
>> CuchuflitoGetLastError(), o la convencion de indicacion de errores es
>> diferente para un DLL que hizo algun otro, y en general no se puede
>> andar agregando _mongocall, _juanperezcall y otros pragmas asi tan
>> facil.  Para esos, lo mejor es escribir una primitiva chiquita en C y
>> llamarla desde la imagen.
>>
>> 2010/8/30 Hernán Morales Durand <[hidden email]>:
>>> El día 28 de agosto de 2010 02:59, Andres Valloud
>>> <[hidden email]> escribió:
>>>> Yendo un poco mas a fondo... en general el tema con esos pragmas es
>>>> que no cubren todas las funciones habidas y por haber.  Por ejemplo,
>>>> en Windows cuando usas sockets tenes que llamar a WSAGetLastError() en
>>>> vez de GetLastError()... se imaginan que no se puede andar agregando
>>>> _wsawincall, _pirulocall, _mongocall etc todo el tiempo para
>>>> contemplar todos los casos posibles.  Por eso es que, si la cosa se
>>>> pone peliaguda, lo mejor es ni usar un FFI y escribir primitivas
>>>> directamente.
>>>
>>> ¿Qué te impide implementar un mecanismo de sincronización por
>>> exclusión mutua o por condición a nivel FFI?
>>>
>>> Hernán
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to [hidden email]
>
> http://www.clubSmalltalk.org

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

http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: Dolphin X6 getLastError

hernanmd
Mmmm creo que no se entendió mi pregunta, no importa, gracias igual.
Saludos,

Hernán

El día 30 de agosto de 2010 14:02, Andres Valloud
<[hidden email]> escribió:

> Con DLLCC y el pragma _wincall, si la funcion que llamas falla,
> entonces la VM llama a GetLastError() y la primitiva que llama
> funciones de C falla devolviendo una pseudo variable temporal que
> contiene el codigo que devolvio GetLastError().  Como todo eso ocurre
> en el mismo thread, entonces es atomico.  En *nix hay _syscall.
>
> 2010/8/30 Hernán Morales Durand <[hidden email]>:
>> ¿Entonces usando DLLCC podés asegurar atomicidad de grano grueso? Te
>> pregunto porque nunca usé DLLCC y no entiendo si tu problema es
>> esencialmente de concurrencia, de convención de llamadas o
>> portabilidad (me imagino que ese _wincall no funciona en Linux :)
>> Saludos,
>>
>> Hernán
>>
>> El día 30 de agosto de 2010 18:17, Andres Valloud
>> <[hidden email]> escribió:
>>> Por eso dije que en DLLCC existe el pragma _wincall.  El problema, sin
>>> embargo, es que a veces tenes que llamar a WSAGetLastError(), o a
>>> CuchuflitoGetLastError(), o la convencion de indicacion de errores es
>>> diferente para un DLL que hizo algun otro, y en general no se puede
>>> andar agregando _mongocall, _juanperezcall y otros pragmas asi tan
>>> facil.  Para esos, lo mejor es escribir una primitiva chiquita en C y
>>> llamarla desde la imagen.
>>>
>>> 2010/8/30 Hernán Morales Durand <[hidden email]>:
>>>> El día 28 de agosto de 2010 02:59, Andres Valloud
>>>> <[hidden email]> escribió:
>>>>> Yendo un poco mas a fondo... en general el tema con esos pragmas es
>>>>> que no cubren todas las funciones habidas y por haber.  Por ejemplo,
>>>>> en Windows cuando usas sockets tenes que llamar a WSAGetLastError() en
>>>>> vez de GetLastError()... se imaginan que no se puede andar agregando
>>>>> _wsawincall, _pirulocall, _mongocall etc todo el tiempo para
>>>>> contemplar todos los casos posibles.  Por eso es que, si la cosa se
>>>>> pone peliaguda, lo mejor es ni usar un FFI y escribir primitivas
>>>>> directamente.
>>>>
>>>> ¿Qué te impide implementar un mecanismo de sincronización por
>>>> exclusión mutua o por condición a nivel FFI?
>>>>
>>>> Hernán
>>>>
>>>> --
>>>> To post to this group, send email to [hidden email]
>>>> To unsubscribe from this group, send email to [hidden email]
>>>>
>>>> http://www.clubSmalltalk.org
>>>
>>> --
>>> To post to this group, send email to [hidden email]
>>> To unsubscribe from this group, send email to [hidden email]
>>>
>>> http://www.clubSmalltalk.org
>>
>> --
>> To post to this group, send email to [hidden email]
>> To unsubscribe from this group, send email to [hidden email]
>>
>> http://www.clubSmalltalk.org
>
> --
> To post to this group, send email to [hidden email]
> To unsubscribe from this group, send email to [hidden email]
>
> http://www.clubSmalltalk.org

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

http://www.clubSmalltalk.org
12