fn release(&mut self, permits: usize) {
        if permits == 0 {
            return;
        }
        // TODO: Overflow check
        self.permits += permits;

        // Wakeup the last waiter
        self.wakeup_waiters();
    }
/// Releases a certain amount of permits back to the semaphore
Releases a certain amount of permits back to the semaphore
Releases a certain amount of permits back to the semaphore
fn release(&mut self, permits: usize) {
        if permits == 0 {
            return;
        }
        // TODO: Overflow check
        self.permits += permits;
        // Wakeup the last waiter
        self.wakeup_waiters();
    }
fn release ( & mut self , permits : usize ) { if permits == 0 { return ; } // TODO: Overflow check self . permits += permits ; // Wakeup the last waiter self . wakeup_waiters ( ) ; }
Releases a certain amount of permits back to the semaphore
Releases a certain amount of permits back to the semaphore
&mut self
permits
usize
&mut self
permits
usize