代码之家  ›  专栏  ›  技术社区  ›  lvella

使用信号量时如何避免资源泄漏?

  •  3
  • lvella  · 技术社区  · 6 年前

    Linux操作系统 sem_destroy() 文件上说:

    未命名的信号量应该用 在它所在的记忆之前 已分配已取消分配。如果不这样做,可能会导致某些实现上的资源泄漏。

    sem\u销毁() atexit() ,在中止或 SIGKILL . 我有一个进程负责创建和销毁共享内存(mmaped文件)上的信号量,如何避免异常终止条件下的资源泄漏?

    在Linux上,如果在 是否有任何资源泄露?什么资源?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Florian Weimer    6 年前

    glibc实现 sem_destroy 什么都不做,这不会改变。如果您使用glibc,就不必为释放资源做任何事情。此外,内核无论如何都会在进程终止时释放这些资源。

    futexes ,这就是为什么除了用来存储信号量的内存之外,它不需要任何额外的资源。