ObjFW  Artifact Description [c6cbfa2ee8]

Artifact c6cbfa2ee875ddf4085089d9de867dba7e5ec090047fe764161033fe46b25d6a:

  • File src/OFKernelEventObserver_poll.h
    • 2015-12-29 21:33:07 — part of check-in [e9b4700cb6] on branch trunk — Refactor OFKernelEventObserver

      This moves the locked queue for actions to
      OFKernelEventObserver_LockedQueue, which is now used for select and
      poll, but skipped for kqueue and epoll, as they natively support changes
      from another thread.

      This fixes the problem that removing an object is delayed until the next
      observe call - at which point it might have already been closed, meaning
      the fd is no longer available. This was mainly a problem with kqueue, as
      closing the fd already removed it from the kqueue, which then resulted
      in an error being returned when trying to manually remove the fd from
      the kqueue. (user: js, size: 843) [annotate] [blame] [check-ins using]

    • 2015-12-29 21:42:38 — part of check-in [c5f0c5f9ba] on branch 0.8 — Refactor OFKernelEventObserver

      This moves the locked queue for actions to
      OFKernelEventObserver_LockedQueue, which is now used for select and
      poll, but skipped for kqueue and epoll, as they natively support changes
      from another thread.

      This fixes the problem that removing an object is delayed until the next
      observe call - at which point it might have already been closed, meaning
      the fd is no longer available. This was mainly a problem with kqueue, as
      closing the fd already removed it from the kqueue, which then resulted
      in an error being returned when trying to manually remove the fd from
      the kqueue. (user: js, size: 843) [annotate] [blame] [check-ins using]