Portál AbcLinuxu, 9. května 2025 21:57

Dotaz: Dynamicka (sdilena) knihovna a semafor

18.2.2008 10:27 zigi | skóre: 14
Dynamicka (sdilena) knihovna a semafor
Přečteno: 131×
Odpovědět | Admin
Přílohy:
Ahoj, snazim se ridit pristup k usb zarineni (pres libusb) pomoci semaforu ve sdilene knihovne. Problem je v tom, ze kdyz si pustim dva procesy, tak v okamziku kdy se zablokuje druhy proces, zablokuje se i ten prvni. Pokud ale po provedeni semop(semid, operations, 1) zavolam sleep(), vse funguje jak ma. Prvne se chci zeptat, jestli se semafory muzou pouzivat ve sdilenych knihovnach a pokud ano, jak se tedy vyhnout tomu zablokovani prvniho procesu.

Diky
int usb485_claim_interface(usb_dev_handle * udev) {
  int rc;

  #ifdef __DEBUG__
    fprintf(stderr, "info in the function usb485_claim_interface()\n");
  #endif

  usb485_sem_lock(semid, SEM_USB_DEV);

  if ((rc = usb_claim_interface(udev, 0)) < 0) {
    #ifdef __DEBUG__
      fprintf(stderr, "error in the function usb485_claim_interface(): %d\n", -rc);
    #endif
  }
  return rc;
}
int usb485_release_interface(usb_dev_handle * udev) {
  int rc;

  #ifdef __DEBUG__
    fprintf(stderr, "info in the function usb485_release_interface()\n");
  #endif

  if ((rc = usb_release_interface(udev, 0)) < 0) {
    #ifdef __DEBUG__
      fprintf(stderr, "error in the function usb485_release_interface(): %d\n", -rc);
    #endif
  }

  usb485_sem_unlock(semid, SEM_USB_DEV);

  return rc;
}
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.