This page was last modified 11:26, 31 October 2007.
Sincronização entre processos
From Forum Nokia Wiki
Original: Synchronization between processes
Uma maneira de prover sincronização entre processos é através do uso de semáforos. Aqui, semáforos podem ser usados para comunicar o estado de um processo.
Em Symbian C++, isso pode ser feito através do uso de RSemaphore, RFastLock, RMutex, RCriticalSection, etc.
Em Open C, os passos seguidos para usar semáforos para sincronização são os seguintes:
- Criar um semáforo usando semget().;
- Quando um processo precisa ser sincronizado com algum outro processo, ele pode criar o semáforo e setar o valor semval() com alguma condição;
- Uma vez que o outro processo tenha terminado sua tarefa, satisfaz a condição pela qual o primeiro processo está esperado;
- Apagar o semáforo criado.
#include <sys/sem.h> #define SEM_KEY 1000 int main() { int semid = semget(SEM_KEY, 1, IPC_CREAT); int ret = semctl(semid, 0, SETVAL, 1); struct sembuf st = {0, 0, 0}; ret = semop(semid, &st, 1); // processo -1 é bloqueado aqui. ret = semctl(semid, 1, IPC_RMID); return 0; }
Para comunicação entre threads, pode-se usar pthread_mutex() para sincronização.
Nota: Pode haver diversas maneiras de conseguir essa funcionalidade. Portanto, mais trechos de código mostrando como fazer isso são mais que bem vindos.
Links relacionados
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Eliminar mensaje conexion via Bluetooth pc - movil | enjutapeich | Foro en Español (Spanish Forum) | 0 | 2008-06-22 13:06 |
| Elusive bug: Symbol Map Crashes CEikGlobalTextEditor? | parisn | General Symbian C++ | 1 | 2007-12-20 20:22 |
| Error al enviar mensajes | dimaar | Foro en Español (Spanish Forum) | 1 | 2007-11-29 19:22 |
| Sincronization problem - Problema de Sincronización | SerPan | Bluetooth Technology | 0 | 2006-11-24 02:29 |
| Como crear una aplicacion en segundo plano | dimaar | Foro en Español (Spanish Forum) | 1 | 2007-10-30 12:09 |
