Manual de programación de OS/2/Llamadas DOSxxx para temporizadores
DosAsyncTimer
[editar]DosAsyncTimer inicia un temporizador asíncrono de un sólo intervalo (solo cuenta una vez).
#define INCL_BASE
#include <os2.h>
ULONG ulTimeInterval;
HSEM hsemSemHandle;
PHTIMER pHandle;
APIRET rc; /* Codigo de error */
rc = DosAsyncTimer(ulTimeInterval, hsemSemHandle, pHandle);
Parámetros
[editar]ulTimeInterval | El tiempo, en milisegundos, que debe pasar para que el temporizador active (post) el semáforo de evento. (El sistema redondea este valor al siguiente ciclo del conmutador de tareas). |
hsemSemHandle | El handle de un semáforo de evento que será activado cuando pase el tiempo indicado en ulTimeInterval. Tiene que ser un semáforo de evento compartido, y debe ser reseteado antes de llamar a DosAsyncTimer. |
pHandle | Un puntero a una posición de memoria donde OS/2 devolverá el handle del temporizador. Este handle puede ser pasado a DosStopTimer para parar el temporizador antes de que termine el intervalo. |
Codigos de error
[editar]0 | Sin error |
323 | Semáforo del sistema |
324 | No quedan temporizadores disponibles |
DosGetDateTime
[editar]DosGetDateTime devuelve la fecha y hora actual del sistema.
#define INCL_BASE
#include <os2.h>
PDATETIME pPDateTime;
APIRET rc; /* Codigo de error */
rc = DosGetDateTime(pPDateTime);
Parámetros
[editar]pPDateTime | Puntero a una estructura FechaHora, con los siguientes campos: | ||||||||||||||||||
|
Codigos de error
[editar]No retorna ningún valor. |
DosSetDateTime
[editar]DosSetDateTime permite cambiar la fecha y la hora actual.
#define INCL_BASE
#include <os2.h>
PDATETIME pPDateTime;
APIRET rc; /* Codigo de error */
rc = DosSetDateTime(pPDateTime);
Parámetros
[editar]pPDateTime | Puntero a una estructura FechaHora donde se le dan a OS/2 los nuevos valores. Tiene los siguientes campos: | ||||||||||||||||||
|
Codigos de error
[editar]0 | Sin error |
327 | Fecha u hora no válida |
DosSleep
[editar]DosSleep duerme el thread actual durante un intervalo de tiempo determinado. Este intervalo es redondeado al ciclo de conmutador de programas más próximo. Si el intervalo indicado es 0 y hay algún thread de igual o mayor prioridad en espera, pasará a ejecutarse, durmiendo el thread actual hasta el siguiente turno. Si no hay ningun thread que cumpla esa condición, se retornará inmediatamente (nunca se cede el control a un thread de menor prioridad). En aplicaciones PM no se debe usar esta llamada, sino WinStartTimer.
#define INCL_BASE
#include <os2.h>
ULONG ulTimeInterval;
APIRET rc; /* Codigo de error */
rc = DosSleep(ulTimeInterval);
Parámetros
[editar]ulTimeInterval | El tiempo, en milisegundos, durante el cual se detendrá la ejecución del thread. |
Codigos de error
[editar]0 | Sin error |
322 | Incapaz de despertar |
DosStartTimer
[editar]DosStartTimer inicia un temporizador asíncrono, que se repite indefinidamente.
#define INCL_BASE
#include <os2.h>
ULONG ulTimeInterval;
HSEM hsemSemHandle;
PHTIMER pHandle;
APIRET rc; /* Codigo de error */
rc = DosStartTimer(ulTimeInterval, hsemSemHandle, pHandle);
Parámetros
[editar]ulTimeInterval | El tiempo, en milisegundos, que debe pasar para que el temporizador active (post) el semáforo de evento. (El sistema redondea este valor al siguiente ciclo del conmutador de tareas). |
hsemSemHandle | El handle de un semáforo de evento que será activado cada vez que pase el tiempo indicado en ulTimeInterval. Tiene que ser un semáforo de evento compartido, y debe ser reseteado entre cada activación con DosResetEventSem. |
pHandle | Un puntero a una posición de memoria donde OS/2 devolverá el handle del temporizador. Este handle puede ser pasado a DosStopTimer para parar el temporizador. |
Codigos de error
[editar]0 | Sin error |
323 | Semáforo del sistema |
324 | No quedan temporizadores disponibles |
DosStopTimer
[editar]DosStopTimer detiene un temporizador asíncrono. Una vez hecho esto, no se puede hacer ninguna suposición sobre el estado del semáforo asociado a éste, por lo que si se va a reutilizar, es necesario inicializarlo con DosResetEventSem.
#define INCL_BASE
#include <os2.h>
HTIMER htimerHandle;
APIRET rc; /* Codigo de error */
rc = DosStopTimer(htimerHandle);
Parámetros
[editar]htimerHandle | El handle del temporizador a parar. |
Codigos de error
[editar]0 | Sin error |
326 | Handle de temporizador no válido |