no-senders.lisp 649 B

1234567891011121314151617181920
  1. (in-package :hurd)
  2. ;; This is run when we get a no senders notification
  3. (def-notify-interface :do-mach-notify-no-senders
  4. ((port port) (count port-mscount))
  5. ;; Lookup port on the *all-ports* table
  6. ;; with success we get a list with a port
  7. ;; and the respective bucket
  8. (declare (ignore count))
  9. (let ((port-data (gethash port *all-ports*)))
  10. (when (listp port-data)
  11. (let ((port-info (first port-data))
  12. (bucket (second port-data)))
  13. ;; Remove it from the bucket
  14. (bucket-remove-port bucket port-info)
  15. ;; Also from the *all-ports* table
  16. (remhash port *all-ports*)))))