Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 172 for rlocked (1.82 sec)

  1. internal/lsync/lrwmutex_test.go

    	wl := NewLRWMutex()
    	var rl sync.Locker
    	wlocked := make(chan bool, 1)
    	rlocked := make(chan bool, 1)
    	rl = wl.DRLocker()
    	n := 10
    	go func() {
    		for i := 0; i < n; i++ {
    			rl.Lock()
    			rl.Lock()
    			rlocked <- true
    			wl.Lock()
    			wlocked <- true
    		}
    	}()
    	for i := 0; i < n; i++ {
    		<-rlocked
    		rl.Unlock()
    		select {
    		case <-wlocked:
    			t.Fatal("RLocker() didn't read-lock it")
    Registered: Sun Jun 16 00:44:34 UTC 2024
    - Last Modified: Sun Mar 05 04:57:35 UTC 2023
    - 7.9K bytes
    - Viewed (0)
  2. src/sync/rwmutex.go

    	return r < 0 && r+rwmutexMaxReaders > 0
    }
    
    // RLocker returns a [Locker] interface that implements
    // the [RWMutex.Lock] and [RWMutex.Unlock] methods by calling rw.RLock and rw.RUnlock.
    func (rw *RWMutex) RLocker() Locker {
    	return (*rlocker)(rw)
    }
    
    type rlocker RWMutex
    
    func (r *rlocker) Lock()   { (*RWMutex)(r).RLock() }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 21:14:51 UTC 2024
    - 7.2K bytes
    - Viewed (0)
  3. src/runtime/lock_sema.go

    			for semasleep(ns) < 0 {
    				asmcgocall(*cgo_yield, nil)
    			}
    		}
    		gp.m.blocked = false
    		return true
    	}
    
    	deadline = nanotime() + ns
    	for {
    		// Registered. Sleep.
    		gp.m.blocked = true
    		if *cgo_yield != nil && ns > 10e6 {
    			ns = 10e6
    		}
    		if semasleep(ns) >= 0 {
    			gp.m.blocked = false
    			// Acquired semaphore, semawakeup unregistered us.
    			// Done.
    			return true
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 6.8K bytes
    - Viewed (0)
  4. internal/dsync/drwmutex_test.go

    	expected := true
    	if locked != expected {
    		t.Errorf("TestSimpleWriteLockAcquired(): \nexpected %#v\ngot      %#v", expected, locked)
    	}
    }
    
    func TestSimpleWriteLockTimedOut(t *testing.T) {
    	locked := testSimpleWriteLock(t, testDrwMutexAcquireTimeout)
    
    	expected := false
    	if locked != expected {
    		t.Errorf("TestSimpleWriteLockTimedOut(): \nexpected %#v\ngot      %#v", expected, locked)
    	}
    }
    
    Registered: Sun Jun 16 00:44:34 UTC 2024
    - Last Modified: Sat Dec 24 03:49:07 UTC 2022
    - 9.7K bytes
    - Viewed (0)
  5. src/runtime/coro.go

    		casgstatus(gnext, _Gwaiting, _Grunnable)
    		casgstatus(gnext, _Grunnable, _Grunning)
    	}
    
    	// Donate locked state.
    	if locked {
    		mp.lockedg.set(gnext)
    		gnext.lockedm.set(mp)
    	}
    
    	// Release the trace locker. We've completed all the necessary transitions..
    	if trace.ok() {
    		traceRelease(trace)
    	}
    
    	// Switch to gnext. Does not return.
    	gogo(&gnext.sched)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:09:18 UTC 2024
    - 7.4K bytes
    - Viewed (0)
  6. android/guava-tests/test/com/google/common/util/concurrent/InterruptibleTaskTest.java

        // after some period of time the runner thread should become blocked on the task because it is
        // waiting for the slow interrupting thread to complete Thread.interrupt
        awaitBlockedOnInstanceOf(runner, InterruptibleTask.Blocker.class);
    
        Blocker blocker = (Blocker) LockSupport.getBlocker(runner);
        Thread owner = blocker.getOwner();
        assertThat(owner).isSameInstanceAs(interrupter);
    
    Registered: Wed Jun 12 16:38:11 UTC 2024
    - Last Modified: Wed Sep 06 17:04:31 UTC 2023
    - 6.6K bytes
    - Viewed (0)
  7. guava-tests/test/com/google/common/util/concurrent/InterruptibleTaskTest.java

        // after some period of time the runner thread should become blocked on the task because it is
        // waiting for the slow interrupting thread to complete Thread.interrupt
        awaitBlockedOnInstanceOf(runner, InterruptibleTask.Blocker.class);
    
        Blocker blocker = (Blocker) LockSupport.getBlocker(runner);
        Thread owner = blocker.getOwner();
        assertThat(owner).isSameInstanceAs(interrupter);
    
    Registered: Wed Jun 12 16:38:11 UTC 2024
    - Last Modified: Wed Sep 06 17:04:31 UTC 2023
    - 6.6K bytes
    - Viewed (0)
  8. internal/lock/lock_test.go

    			return
    		}
    		locked <- struct{}{}
    		if blerr = bl.Close(); blerr != nil {
    			t.Error(blerr)
    			return
    		}
    	}()
    
    	select {
    	case <-locked:
    		t.Error("unexpected unblocking")
    	case <-time.After(100 * time.Millisecond):
    	}
    
    	// unlock
    	if err = dupl.Close(); err != nil {
    		t.Fatal(err)
    	}
    
    	// the previously blocked routine should be unblocked
    	select {
    Registered: Sun Jun 16 00:44:34 UTC 2024
    - Last Modified: Mon Sep 19 18:05:16 UTC 2022
    - 3.6K bytes
    - Viewed (0)
  9. src/sync/mutex.go

    // relation at all.
    //
    // [the Go memory model]: https://go.dev/ref/mem
    type Mutex struct {
    	state int32
    	sema  uint32
    }
    
    // A Locker represents an object that can be locked and unlocked.
    type Locker interface {
    	Lock()
    	Unlock()
    }
    
    const (
    	mutexLocked = 1 << iota // mutex is locked
    	mutexWoken
    	mutexStarving
    	mutexWaiterShift = iota
    
    	// Mutex fairness.
    	//
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 21:14:51 UTC 2024
    - 8.4K bytes
    - Viewed (0)
  10. src/cmd/go/internal/lockedfile/lockedfile_test.go

    	})
    
    	// Wait until process Q has either failed or locked file B.
    	// Otherwise, P.2 might not block on file B as intended.
    locked:
    	for {
    		if _, err := os.Stat(filepath.Join(dir, "locked")); !os.IsNotExist(err) {
    			break locked
    		}
    		timer := time.NewTimer(1 * time.Millisecond)
    		select {
    		case <-qDone:
    			timer.Stop()
    			break locked
    		case <-timer.C:
    		}
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Sep 05 23:35:29 UTC 2023
    - 5.7K bytes
    - Viewed (0)
Back to top