Commit Graph

695 Commits

Author SHA1 Message Date
Ruihan Li 390aa411bd Beautify the `poll()` system call 2024-10-28 14:33:32 +08:00
jellllly420 6ece48c095 Refactor process table 2024-10-28 13:00:13 +08:00
Zhang Junyang 1b23182dcc Fix the thread status ordering by limiting the API 2024-10-26 22:06:41 +08:00
Zhang Junyang e319641b4d Implement system call `sched_get/set_affinity` 2024-10-26 22:06:41 +08:00
Zhang Junyang 3468ec213b Use `CpuId` with validity ensurance rather than `u32` 2024-10-26 22:06:41 +08:00
Chen Chengjun e60b5b7649 Refine mapping-related locks 2024-10-26 21:55:48 +08:00
Ruize Tang 968389f550 Fix lost wakeup in `range_lock` caused by waiting on an outdated waitqueue 2024-10-26 21:44:03 +08:00
Ruize Tang e5fd8e7477 Fix flock lost-wakeup bugs, replace RwMutex -> Mutex 2024-10-26 21:23:50 +08:00
ZephyrZhang 885e4315e3 fix a comment typo at kernel/src/syscall/mod.rs 2024-10-25 13:26:45 +08:00
Fabing Li 9f188837ae Add /proc/[pid]/stat and /proc/[pid]/status 2024-10-24 19:17:20 +08:00
Zhang Junyang 4658b62f90 Treat thread oops with better care to avoid silent panics 2024-10-22 10:08:24 +08:00
Hsy-Intel b7d101b98c Fix MMIO read issue 2024-10-21 17:49:56 +08:00
Wang Siyuan 998869d57e Refactor kernel virtual memory allocation for kernel stack and I/O memory 2024-10-21 09:53:05 +08:00
Ni Shirong 29eb37c07c Introduce kernel virtual memory allocation for kernel stack 2024-10-21 09:53:05 +08:00
Wang Taojie 03906513aa Clear one bit instead 2024-10-21 09:43:43 +08:00
Wang Taojie 89d04ecf7d Implement ioctl() FIOCLEX command 2024-10-21 09:43:43 +08:00
Zhang Junyang 4823b82e41 Catch panics in threads as oops 2024-10-20 13:24:58 +08:00
Zhang Junyang a716763772 Remove the linkage feature usage for `ostd::main` 2024-10-20 13:24:58 +08:00
jellllly420 3c857d746e Clear TID before doing futex_wake when exiting a POSIX thread 2024-10-20 13:21:27 +08:00
Chen Chengjun 2f511069ee Move SoftIRQ implementations to softirq component 2024-10-18 09:35:40 +08:00
le-monde-bleu 54a807b5f7 Modify asterinas/kernel/src/process/posix_thread/mod.rs 2024-10-18 09:31:25 +08:00
Zhang Junyang 1fe0a138f9 `PROT_WRITE` implies `PROT_READ` on x86 2024-10-17 08:56:47 +08:00
Hsy-Intel c28cec2c6a Fix minor bugs in TDX env 2024-10-14 21:03:47 +08:00
jiangjianfeng 090149eed7 Add tcp latency test over virtio-net 2024-10-14 20:59:25 +08:00
jiangjianfeng 002a67451d Update line discipline pollee immediately 2024-10-14 16:39:34 +08:00
Marsman1996 e32687e6d5 do_exit: Ignore unwrap panic caused by munmap 2024-10-14 14:48:43 +08:00
Zhang Junyang 9e4257b655 Fix multiple issues pointed out by the new compiler 2024-10-13 22:32:05 +08:00
Shaowei Song ee33216875 Fix the incorrect range in `SegmentSlice` 2024-10-12 19:58:10 +08:00
Wang Taojie bdf89a5de3 Implement getcwd() 2024-10-12 09:58:45 +08:00
Shaowei Song ea489252f4 Refactor `Dentry` to optimize the vfs layer 2024-10-11 11:22:52 +08:00
Shaowei Song 271e893889 Revise `MountNode`'s lock usage 2024-10-11 11:22:52 +08:00
Ruihan Li 0415225c19 Fix IRQ-related socket locks 2024-10-10 20:36:22 +08:00
Ruihan Li 7e21e1e653 Revise socket option handling 2024-10-10 20:36:22 +08:00
Ruihan Li b9b09b8142 Don't lock `Mutex` in `EpollEntry::on_events` 2024-10-10 19:23:09 +08:00
Zhang Junyang 909639fd70 Separate `SegmentSlice` from `Segment` 2024-10-09 19:23:46 +08:00
Shaowei Song dad56e1664 Refactor the lock usages within `RamInode` 2024-10-08 16:56:02 +08:00
Ruihan Li 96efd62007 Use `LocalIrqDisable` in `Subject` 2024-10-04 21:55:48 +08:00
Yuke Peng 7d5a2b7a79 [VirtIO] Correct the error code when device not match 2024-10-04 10:28:59 +08:00
Ruihan Li 76d4b180d0 Increase the TCP socket buffer length 2024-09-30 20:37:57 +08:00
Marsman1996 44760eb5fa Return when sigset size error for rt_sigsuspend, rt_sigprocmask and rt_sigaction 2024-09-30 20:24:23 +08:00
Ruihan Li ee1656ba35 Move packet dispatch out of smoltcp 2024-09-30 16:00:51 +08:00
jiangjianfeng f793259512 Avoiding busy loop in sending packet and optimize device caps 2024-09-30 15:03:58 +08:00
Chen Chengjun 8f50391a4e Optimize the clear procedure of the page table 2024-09-30 10:46:30 +08:00
YanWQ-monad 4fa0e6334b Add RISC-V base support 2024-09-30 10:02:08 +08:00
YanWQ-monad 839c2a6689 Extract shared code from timer 2024-09-30 10:02:08 +08:00
jellllly420 5c8e369057 Enable scheduler to fetch scheduling information directly from Thread 2024-09-27 10:21:45 +08:00
jellllly420 9cc63149f1 Remove cpu_affinity field from OSTD Task struct 2024-09-27 10:21:45 +08:00
jellllly420 8927031426 Remove priority field from OSTD Task struct 2024-09-27 10:21:45 +08:00
Carlos López 0a36760f7a Respect user-defined exit signal in clone() and clone3()
When calling clone() and clone3(), the user is allowed to specify a
signal to be sent to the parent process on exit. Respect this value by
storing it in the Process struct and sending the signal on exit.

Add a test as well to verify that the signal is properly delivered to
the parent.
2024-09-26 20:07:43 +08:00
Carlos López 130a0f7030 Homogenize arguments for clone() and clone3()
The arguments for both syscalls follow different formats. Rewrite the
CloneArgs struct to homogenize both formats into one.
2024-09-26 20:07:43 +08:00
Zhang Junyang fad39fdf7a Make TLB flush policy relaxed 2024-09-26 19:29:59 +08:00
Zhang Junyang 52f1787d35 Remove syncronizations for the `VmSpace` PF handler 2024-09-26 19:29:59 +08:00
Zhang Junyang 7407cc8091 Remove some repetitive locks forking `Vmar` 2024-09-26 19:29:59 +08:00
Zhang Junyang ac6d9256ef Improve the `VmSpace` forking API 2024-09-26 19:29:59 +08:00
Marsman1996 d4036d1e9d Handle error in `FsResolver::create_new_file()` 2024-09-26 17:45:00 +08:00
Shaowei Song f2af6136da Minor optimizations on both `lat-syscall-stat` and `lat-syscall-open` 2024-09-26 15:25:49 +08:00
Ruihan Li fc77c474db Move and group methods 2024-09-26 15:22:16 +08:00
Ruihan Li 3fc396f5f1 Adjust the ephemeral port 2024-09-26 15:22:16 +08:00
Ruihan Li eb3a033496 Refine some lock usages 2024-09-26 15:22:16 +08:00
Ruihan Li b13a82dc61 Bump smoltcp version 2024-09-26 15:22:16 +08:00
Ruihan Li 51334c4a36 Clean up smoltcp dependencies 2024-09-26 15:22:16 +08:00
Ruihan Li d62bb1ca76 Use static IP addresses 2024-09-26 15:22:16 +08:00
Jianfeng Jiang fb718fd440 Optimize the latency of lat-sig-install 2024-09-25 17:29:20 +08:00
jellllly420 21fedd1b60 Implement atomic wrapper for integer-like type 2024-09-25 14:47:37 +08:00
Shaowei Song ae4ac38471 Optimize the cache and lock parts in `MountNode` 2024-09-25 11:22:24 +08:00
Shaowei Song 791c566b71 Optimize the cache and lock parts in `Dentry` 2024-09-25 11:22:24 +08:00
Shaowei Song 2c6dd074d1 Refactor the path lookup in `FsResolver` 2024-09-25 11:22:24 +08:00
Ruihan Li 1aa8b0abc6 Correct lock usages in UNIX sockets 2024-09-24 20:49:48 +08:00
Marsman1996 cbe85a1878 Add check for negative `timeval_t.sec` in `do_futimesat` 2024-09-24 20:36:29 +08:00
Ruihan Li 179705a3fc Fix RamFS readahead 2024-09-24 20:34:19 +08:00
YanWQ-monad 4d36dd541f Extract x86-specific exception handling in aster-nix 2024-09-23 19:39:45 +08:00
Yuke Peng 46708f84bc Implement futex private flag 2024-09-22 16:00:56 +08:00
Yuke Peng 228cfe2262 Preallocate some space when expanding size in ext2 2024-09-21 20:22:39 +08:00
Yuke Peng 550eafcb79 Preallocate some space when expanding size in ramfs 2024-09-21 20:22:39 +08:00
Zhang Junyang 9a79ecbcbe Clean up the frame buffer state in `ostd::mm` 2024-09-21 15:38:15 +08:00
YanWQ-monad 2a6733579d Refactor architecture-specific page fault handling 2024-09-20 10:56:13 +08:00
Jianfeng Jiang c5009e38f1 Add pipe/short_rw test
Co-authored-by: Ruihan Li <lrh2000@pku.edu.cn>
2024-09-20 10:37:20 +08:00
Jianfeng Jiang 985813c7f9 Use IoVec-based reader/writer to refactor network APIs 2024-09-20 10:37:20 +08:00
Marsman1996 b4003b8aeb Add normalize for `timeval_t` and const value for time 2024-09-20 10:35:03 +08:00
Marsman1996 4fa4e5ef2a Add check during the conversion from `timeval_t` to `Duration` 2024-09-20 10:35:03 +08:00
Jianfeng Jiang 70505ff4f8 Support futex wait timeout 2024-09-19 22:42:13 +08:00
Qingsong Chen c2f7a10b84 Implement cpu_local with GS and ensure GS points to TSS 2024-09-19 13:00:36 +08:00
Jianfeng Jiang f159b42b61 Fix the condition in is_last_thread 2024-09-18 16:59:17 +08:00
Ruihan Li 2bda8d17c4 Rename some misleading method names 2024-09-17 17:46:56 +08:00
Ruihan Li cefeea7b50 Revise `IoMem::resize` into `IoMem::slice` 2024-09-17 17:46:56 +08:00
Ruihan Li c8ba695c85 Implement `VmIoOnce` for `IoMem` 2024-09-17 17:46:56 +08:00
Ruihan Li aa62f0a4e6 Make `field_ptr!` accept `VmIoOnce` 2024-09-17 17:46:56 +08:00
Shaowei Song 22b04ceae4 Optimize the `DirEntry` of `RamInode` 2024-09-16 15:59:59 +08:00
Shaowei Song f194514100 Optimize the page cache within a `RamInode` 2024-09-16 15:59:59 +08:00
Marsman1996 44629e4627 Fix panic in FutexKey::load_val when no read access 2024-09-14 22:45:59 +08:00
Jianfeng Jiang f3174dbbbc Make task store Arc<Thread> and process store Arc<Task> 2024-09-14 17:34:14 +08:00
Jianfeng Jiang 81b0f265b5 Move Tid from Thread to PosixThread 2024-09-14 17:34:14 +08:00
Zhang Junyang 195fe855a1 Mark all surrounding pages accessed on page fault 2024-09-14 17:29:39 +08:00
Chen Chengjun 42e28763c5 Replace the Pausers' usage with Waiter/WaitQueue 2024-09-14 13:59:07 +08:00
Chen Chengjun 822caf34f4 Move Pauser's functionality to Waiter/WaiterQueue and add the per-thread signalled waker 2024-09-14 13:59:07 +08:00
Chen Chengjun 1873bb7a3f Add wait_until_* functionality to Waiter 2024-09-14 13:59:07 +08:00
Chen Chengjun 6a5a5b4d3d Add a fast path to has_pending 2024-09-14 13:59:07 +08:00
Marsman1996 fc895c5697 Fix panic in `mmap` by invalid `perms` 2024-09-13 23:42:37 +08:00
Marsman1996 8421046dba Return when sigset size error 2024-09-13 22:12:50 +08:00
Ruihan Li 320092eda2 Implement blocking `connect` properly 2024-09-13 22:09:46 +08:00
Ruihan Li 6f915133b5 Fix error codes in `bind` 2024-09-13 22:09:46 +08:00
Ruihan Li a345e11b96 Fix error codes in `send`, `recv`, `accept` 2024-09-13 22:09:46 +08:00
Ruihan Li a8592a16ea Fix I/O events related to shutdown 2024-09-13 22:09:46 +08:00
Ruihan Li 421f6b8e5b Fix I/O events cross different states 2024-09-13 22:09:46 +08:00
Ruihan Li f831f5685f Fix I/O events for UNIX connected sockets 2024-09-13 22:09:46 +08:00
Shaowei Song 7ddb69f4db Make special devices go to the `FileIo` fast path 2024-09-13 22:09:06 +08:00
Ruihan Li 1b9b76d27c Make use of new `SpinLock` APIs 2024-09-13 21:31:20 +08:00
Ruihan Li 67d3682116 Move smoltcp-related code to bigtcp 2024-09-13 21:31:20 +08:00
Ruihan Li 9fba9445bd Introduce `IpIface` and `EtherIface` 2024-09-13 21:31:20 +08:00
Ruihan Li dd2cde3aee Introduce `IfaceExt` 2024-09-13 21:31:20 +08:00
Ruihan Li 538065b42f Remove unused methods and revise documentations 2024-09-13 21:31:20 +08:00
Ruihan Li 7a13c0dff6 Fix behavior related to EPOLLONESHOT 2024-09-13 21:02:06 +08:00
Ruihan Li 0a053404b9 Adjust error messages 2024-09-13 21:02:06 +08:00
Ruihan Li 6151d65cf5 Fix poll behavior 2024-09-13 21:02:06 +08:00
Ruihan Li 479d98c8b9 Use `(fd, file)` as the key 2024-09-13 21:02:06 +08:00
Ruihan Li d70ae181b5 Avoid nested loops 2024-09-13 21:02:06 +08:00
Ruihan Li 25daab7e78 Avoid duplicate code 2024-09-13 21:02:06 +08:00
Ruihan Li fa52eeb88f Remove unnecessary `is_deleted` 2024-09-13 21:02:06 +08:00
Zhang Junyang bec2c97637 Don't copy on write if this is the only reference 2024-09-13 20:10:03 +08:00
Zhang Junyang f13e5d12c1 Set right A/D bits at the right place 2024-09-13 20:10:03 +08:00
Zhang Junyang 4e9460593d Check for the mapping status before handling the page fault 2024-09-13 20:10:03 +08:00
Zhang Junyang d9eccdcfbe Implement remote TLB flush on `VmSpace` 2024-09-13 20:10:03 +08:00
Yuke Peng 63364813a8 Change idle task to lowest priority 2024-09-13 19:52:00 +08:00
Shaowei Song 1186fb7ca9 Use `SpinLock` on `FileTable` for efficiency 2024-09-13 19:48:26 +08:00
Shaowei Song 4a43e317b2 Use `SpinLock` on `Subject` 2024-09-13 19:48:26 +08:00
Marsman1996 6fcad6ce14 Fix integer overflow in handle_page_faults_around 2024-09-12 21:24:42 +08:00
Ruize Tang b88c490ff7 Fix incorrect return value for semctl GETZCNT/GETNCNT 2024-09-12 21:09:57 +08:00
Chen Chengjun 1fb34780f6 Eliminate an additional current!() operation in user space pagefault handling 2024-09-12 21:09:16 +08:00
Zhang Junyang 53ce7df53c Warn instead of panic on long clock update interval 2024-09-12 17:53:14 +08:00
Qingsong Chen 787604b7f6 Use ParentProcess to cache parent pid 2024-09-12 17:41:56 +08:00
Shaowei Song 8bfbdf6642 Optimize the lock usage in `RamInode`'s read/write 2024-09-11 12:59:31 +08:00
Marsman1996 42f3411337 Fix index out of bound when `key` of `semget` too large 2024-09-11 12:43:49 +08:00
Zhang Junyang c68302f700 Don't hold any locks while waiting in `EpollFile` 2024-09-07 06:47:12 +08:00
Shaowei Song 9638744712 Unseekable files need not to manipulate the `offset` 2024-09-02 18:42:35 +08:00
Yuke Peng 6ce50fab1c Refactor semaphore to support atomic semop 2024-09-02 17:12:04 +08:00
Shaowei Song dcc9600cb4 Do not modify timestamps on device read/write 2024-09-02 17:09:16 +08:00
Marsman1996 745ac6d982 Set overflow boundary to `isize::MAX` for memory related syscalls 2024-09-01 15:40:46 +08:00
Marsman1996 9589b332aa Add more overflow checks in `mmap` 2024-09-01 15:40:46 +08:00
Marsman1996 e184094648 Fix integer overflow caused by page align 2024-09-01 15:40:46 +08:00
Marsman1996 0a8ad6971a Fix integer overflow caused by large addr + size in memory related syscall 2024-09-01 15:40:46 +08:00
Yuke Peng db16caf28c [Semaphore] Replace Mutex with SpinLock 2024-08-30 22:52:24 +08:00
Yuke Peng b17e3e24d8 [Semaphore] Avoid using `CurrentUserSpace::get` 2024-08-30 22:52:24 +08:00
Yuke Peng d88d8fd307 [Semaphore] Remove duplicate PID and time settings 2024-08-30 22:52:24 +08:00
Yuke Peng 3297976700 [Semaphore] Optimize the update_pending_ops 2024-08-30 22:52:24 +08:00
Yuke Peng a8970daec2 [Semaphore] Remove Box in pending_ops 2024-08-30 22:52:24 +08:00
Fabing Li 6ce25dc38b Fix lock releasing of fcntl 2024-08-29 17:06:01 +08:00
Fabing Li be8cc24544 Fix infinite waiting of range locks 2024-08-29 17:06:01 +08:00
Shaowei Song 5bc696a85a Make the allocated segment uninitialized in the ring buffer 2024-08-29 12:30:04 +08:00
Shaowei Song e6f465b553 Replace all the ring buffers with the new one 2024-08-29 00:33:47 +08:00
Shaowei Song 923b3704d7 Add a new ring buffer backed by a `Segment` 2024-08-29 00:33:47 +08:00
jellllly420 59b7a9397f Fix deadlock while acquiring lock on local runqueue 2024-08-29 00:32:12 +08:00
Ruihan Li 65aa156e92 Implement UNIX abstract address namespace 2024-08-28 19:54:36 +08:00
Shaowei Song aae9fdb331 Add assembly `memset` for fast filling zeros 2024-08-28 18:06:04 +08:00
Jianfeng Jiang a72c7dadf3 Optimize the latency of lmbench-signal-prot 2024-08-28 14:27:41 +08:00
Yuke Peng 434f143e30 Pass can reuse to bind_socket 2024-08-28 14:01:18 +08:00
Yuke Peng dc4df47007 Implement UDP getsockopt and setsockopt 2024-08-28 14:01:18 +08:00
Chen Chengjun ffc717f00b Enable handling page fault around 2024-08-28 11:04:03 +08:00
Yuke Peng a5e6c11d1a Correct FcntlCmd 2024-08-27 22:14:40 +08:00
Zhang Junyang 47be0a909b Schedule tasks to APs in `aster-nix` 2024-08-27 17:22:47 +08:00
Zhang Junyang ed82c11dd3 Use a `SpinLock` for the thread table instead of `Mutex` 2024-08-27 17:22:47 +08:00
Cautreoxit 86f09eef75 Fix all spelling mistakes in history by typos tool 2024-08-27 12:19:48 +08:00
Jianfeng Jiang aa77747f94 Make mprotect&munmap return fast when len is zero 2024-08-26 12:06:31 +08:00
Jianfeng Jiang 212440dbb1 Fix: mmap len cannot be zero 2024-08-26 12:06:31 +08:00
jellllly420 32a1a53ee7 Enable check of atomic mode 2024-08-26 10:23:25 +08:00
Zhang Junyang 54cbacb2ff Replace the `CpuLocal`'s `borrow*` APIs with `get_with` 2024-08-25 20:14:06 +08:00
Zhang Junyang f7a9510be0 Refactor the `this_cpu` API with `PinCurrentCpu` 2024-08-25 20:14:06 +08:00
Zhang Junyang 9a94ba23aa Replace the `Deref` implementation of `CpuLocal` with `get_on_cpu` 2024-08-25 20:14:06 +08:00
Yuke Peng 3cac1b2a03 Use AtomicU32 to read/write latest modified pid 2024-08-25 20:13:05 +08:00
Yuke Peng ccdf2dc54f Drop the `MutexGuard` of semaphore earlier 2024-08-25 20:13:05 +08:00
Yuke Peng 547e6430ee Pass the reference of sem_buf to semop 2024-08-25 20:13:05 +08:00
Yuke Peng 83a4366a72 Remove check_sem in semop 2024-08-25 20:13:05 +08:00
Yuke Peng 4b1f2f720e Avoid using `current` in semop 2024-08-25 20:13:05 +08:00
Chen Chengjun 6bde87d33a Fix a bug of InitStack during doing fork+exec 2024-08-25 15:14:11 +08:00
Zhang Junyang 1e24911198 Upgrade the version of `bytemuck` since it's yanked 2024-08-24 17:18:24 +08:00
Zhang Junyang dafd16075f Remove the shim kernel crate 2024-08-23 23:37:50 +08:00
Zhang Junyang d76c7a5b1e OSDK check and clippy with `cfg(ktest)` 2024-08-23 23:37:50 +08:00
Zhang Junyang be3492d7f0 Extract the OSTD test runner as a kernel 2024-08-23 23:37:50 +08:00
Yuke Peng 715733f551 Implement dummy NamedPipe 2024-08-23 19:56:36 +08:00
Yuke Peng ea64ddfde5 Change the API of `mknod` 2024-08-23 19:56:36 +08:00
Yuke Peng 95f67b3d67 Remove duplicate `FileType` enumerate 2024-08-23 19:56:36 +08:00
Yuke Peng 069cd7932b Block when `incoming_conns` reaches backlog 2024-08-23 19:55:25 +08:00
Ruihan Li 2d6da11d92 Add comments about two polling loops 2024-08-23 19:27:12 +08:00
Yuke Peng 42f70fd779 Fix reachable unwrap panic in `check_sem()` 2024-08-23 19:24:17 +08:00
Yuke Peng bb4751741a Bump smoltcp to newest git version 2024-08-22 22:58:36 +08:00
Shaowei Song dce796cdde Refactor all io APIs of vfs based on `VmReader`/`VmWriter` 2024-08-22 22:54:30 +08:00
Marsman1996 ef9e600c9d Fix panic in `sys_waitid()` by options 2024-08-22 09:56:10 +08:00
Marsman1996 ec7391468c Fix panic in `from_which_and_id()` 2024-08-22 09:56:10 +08:00
Marsman1996 90688286aa Improve readability 2024-08-22 09:50:47 +08:00
Marsman1996 95aaef9aa1 Check the length of timers before delete 2024-08-22 09:50:47 +08:00
Marsman1996 c38907374a Check the length of timers before access 2024-08-22 09:50:47 +08:00
Shaowei Song 2102107be1 Refactor `VmReader`&`VmWriter` as given fallibility marker 2024-08-21 22:24:15 +08:00
Marsman1996 fda0fa0512 Align `len` in `madvise` 2024-08-20 13:10:00 +08:00
Marsman1996 22f9c072f3 Move the check location following Linux behaviors 2024-08-20 13:10:00 +08:00
Marsman1996 18607c33ea Fix panic in `madv_free()` 2024-08-20 13:10:00 +08:00
Ruihan Li e3307a6945 Use `Connected` to replace `Endpoint` 2024-08-18 23:57:56 +08:00
Ruihan Li 639eedb2e1 Remove unused error code 2024-08-18 23:57:56 +08:00
Ruihan Li 47857fc10f Fix remote addresses in connected UNIX sockets 2024-08-18 23:57:56 +08:00
Ruihan Li a3d4748d6b Fix behavior in UNIX socket `listen()` 2024-08-18 23:57:56 +08:00
Ruihan Li ac19a7e0e7 Fix race conditions in UNIX socket `listen()` 2024-08-18 23:57:56 +08:00
Ruihan Li a2d94675eb Move `impl Drop` to UNIX listeners 2024-08-18 23:57:56 +08:00