Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 169 for lockedm (0.3 sec)

  1. src/runtime/debugcall.go

    		// Transfer locked-ness to the new goroutine.
    		// Save lock state to restore later.
    		mp := gp.m
    		if mp != gp.lockedm.ptr() {
    			throw("inconsistent lockedm")
    		}
    		// Save the external lock count and clear it so
    		// that it can't be unlocked from the debug call.
    		// Note: we already locked internally to the thread,
    		// so if we were locked before we're still locked now.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 05 20:50:21 UTC 2024
    - 7.1K bytes
    - Viewed (0)
  2. 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)
  3. src/runtime/export_debug_test.go

    // will send SIGTRAP to thread ID tid. gp must be locked to its OS thread and
    // running.
    //
    // On success, InjectDebugCall returns the panic value of fn or nil.
    // If fn did not panic, its results will be available in args.
    func InjectDebugCall(gp *g, fn any, regArgs *abi.RegArgs, stackArgs any, tkill func(tid int) error, returnOnUnsafePoint bool) (any, error) {
    	if gp.lockedm == 0 {
    		return nil, plainError("goroutine not locked to thread")
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 5.1K bytes
    - Viewed (0)
  4. 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)
  5. src/runtime/lock_sema.go

    					break
    				}
    				v = atomic.Loaduintptr(&l.key)
    				if v&locked == 0 {
    					continue Loop
    				}
    			}
    			if v&locked != 0 {
    				// Queued. Wait.
    				semasleep(-1)
    				i = 0
    			}
    		}
    	}
    }
    
    func unlock(l *mutex) {
    	unlockWithRank(l)
    }
    
    // We might not be holding a p in this code.
    //
    //go:nowritebarrier
    func unlock2(l *mutex) {
    	gp := getg()
    	var mp *m
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 6.8K bytes
    - Viewed (0)
  6. 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)
  7. internal/lock/lock_test.go

    	}
    
    	// blocking on locked file
    	locked := make(chan struct{}, 1)
    	go func() {
    		bl, blerr := LockedOpenFile(f.Name(), os.O_WRONLY, 0o600)
    		if blerr != nil {
    			t.Error(blerr)
    			return
    		}
    		locked <- struct{}{}
    		if blerr = bl.Close(); blerr != nil {
    			t.Error(blerr)
    			return
    		}
    	}()
    
    	select {
    	case <-locked:
    		t.Error("unexpected unblocking")
    Registered: Sun Jun 16 00:44:34 UTC 2024
    - Last Modified: Mon Sep 19 18:05:16 UTC 2022
    - 3.6K bytes
    - Viewed (0)
  8. 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)
  9. src/sync/rwmutex.go

    		race.Acquire(unsafe.Pointer(&rw.writerSem))
    	}
    	return true
    }
    
    // Unlock unlocks rw for writing. It is a run-time error if rw is
    // not locked for writing on entry to Unlock.
    //
    // As with Mutexes, a locked [RWMutex] is not associated with a particular
    // goroutine. One goroutine may [RWMutex.RLock] ([RWMutex.Lock]) a RWMutex and then
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 21:14:51 UTC 2024
    - 7.2K 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