[Pthreads] Mutex misbruikt als soort semaphore.

Pagina: 1
Acties:

Vraag


  • j.roeloffzen
  • Registratie: Maart 2026
  • Laatst online: 16:26
Beste Forum,

Ik heb een stuk C code in beheer (niet door mij geschreven) dat gebruikt een pthread_mutex_lock en pthread_mutex_unlock call. De unlock wordt in een andere thread dan de lock gedaan. Dit werkt toevallig maar is gedocumenteerd (in de manpage van pthread_mutex_lock) als "undefined behaviour". De mutex is default/non-robust geinitialiseert. Ik beschouw het als een bug maar dit veranderen kost enige tijd (Testen , qualificatie, etc ..)

Mijn vraag is hoe dit te benaderen, 2 keuzes:
A - "It ain't broken , don't fix it" Undefined behaviour blijft ongewijzigd, ook na evt OS updates.
B - De code kan beslist omvallen na een OS of library update, dus beslist fixen. Bijvoorbeeld de call returns nu een error.

Graag enig advies.

Jan Roeloffzen

[ Voor 0% gewijzigd door j.roeloffzen op 23-03-2026 14:56 . Reden: unintended smiley ]

Beste antwoord (via j.roeloffzen op 23-03-2026 15:25)


  • jeroen3
  • Registratie: Mei 2010
  • Nu online
Testcases toevoegen aan de unit tests die controleren of het "undefined" gedrag nog is wat je verwacht.

Alle reacties


Acties:
  • Beste antwoord

  • jeroen3
  • Registratie: Mei 2010
  • Nu online
Testcases toevoegen aan de unit tests die controleren of het "undefined" gedrag nog is wat je verwacht.

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 15:06
Documenteren als "tech debt issue" en een ranking geven.
Dan kan je eraan beginnen wanneer het belangrijk genoeg is (in verhouding tot je overige werk / issues)

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • j.roeloffzen
  • Registratie: Maart 2026
  • Laatst online: 16:26
jeroen3 schreef op maandag 23 maart 2026 @ 14:57:
Testcases toevoegen aan de unit tests die controleren of het "undefined" gedrag nog is wat je verwacht.
Vriendelijk bedankt voor het antwoord,.Het is geen slecht idee, maar als ik er vanuit moet gaan dat het kan omvallen (en dat was de eigenlijke vraag) kan ik het net zo goed vooraf fixen (optie B dus) . Het kan een behoorlijke tijd duren voor het ooit gereproduceerd wordt namelijk.

  • j.roeloffzen
  • Registratie: Maart 2026
  • Laatst online: 16:26
GarBaGe schreef op maandag 23 maart 2026 @ 14:58:
Documenteren als "tech debt issue" en een ranking geven.
Dan kan je eraan beginnen wanneer het belangrijk genoeg is (in verhouding tot je overige werk / issues)
Bedankt voor je antwoord. Het is idd een bestaand JIRA issue en ong. in het midden vd backlog, wat betreft de ranking ...