Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 8 of 8 for unlockWithRank (0.59 sec)

  1. src/runtime/lockrank_off.go

    	lock2(l)
    }
    
    // This function may be called in nosplit context and thus must be nosplit.
    //
    //go:nosplit
    func acquireLockRankAndM(rank lockRank) {
    	acquirem()
    }
    
    func unlockWithRank(l *mutex) {
    	unlock2(l)
    }
    
    // This function may be called in nosplit context and thus must be nosplit.
    //
    //go:nosplit
    func releaseLockRankAndM(rank lockRank) {
    	releasem(getg().m)
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:29:04 UTC 2024
    - 1.2K bytes
    - Viewed (0)
  2. src/runtime/lock_wasip1.go

    		// observe this.
    		throw("self deadlock")
    	}
    	gp := getg()
    	if gp.m.locks < 0 {
    		throw("lock count")
    	}
    	gp.m.locks++
    	l.key = mutex_locked
    }
    
    func unlock(l *mutex) {
    	unlockWithRank(l)
    }
    
    func unlock2(l *mutex) {
    	if l.key == mutex_unlocked {
    		throw("unlock of unlocked lock")
    	}
    	gp := getg()
    	gp.m.locks--
    	if gp.m.locks < 0 {
    		throw("lock count")
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 21:02:20 UTC 2023
    - 2K bytes
    - Viewed (0)
  3. src/runtime/lock_futex.go

    		if v == mutex_unlocked {
    			timer.end()
    			return
    		}
    		wait = mutex_sleeping
    		futexsleep(key32(&l.key), mutex_sleeping, -1)
    	}
    }
    
    func unlock(l *mutex) {
    	unlockWithRank(l)
    }
    
    func unlock2(l *mutex) {
    	v := atomic.Xchg(key32(&l.key), mutex_unlocked)
    	if v == mutex_unlocked {
    		throw("unlock of unlocked lock")
    	}
    	if v == mutex_sleeping {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:34 UTC 2024
    - 5.4K bytes
    - Viewed (0)
  4. src/runtime/lock_sema.go

    				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
    	for {
    		v := atomic.Loaduintptr(&l.key)
    		if v == locked {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 6.8K bytes
    - Viewed (0)
  5. src/runtime/lock_js.go

    		// observe this.
    		throw("self deadlock")
    	}
    	gp := getg()
    	if gp.m.locks < 0 {
    		throw("lock count")
    	}
    	gp.m.locks++
    	l.key = mutex_locked
    }
    
    func unlock(l *mutex) {
    	unlockWithRank(l)
    }
    
    func unlock2(l *mutex) {
    	if l.key == mutex_unlocked {
    		throw("unlock of unlocked lock")
    	}
    	gp := getg()
    	gp.m.locks--
    	if gp.m.locks < 0 {
    		throw("lock count")
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 21:02:20 UTC 2023
    - 7.3K bytes
    - Viewed (0)
  6. src/runtime/lockrank_on.go

    	}
    	if !rankOK {
    		printlock()
    		println(gp.m.procid, " ======")
    		printHeldLocks(gp)
    		throw("lock ordering problem")
    	}
    }
    
    // See comment on lockWithRank regarding stack splitting.
    func unlockWithRank(l *mutex) {
    	if l == &debuglock || l == &paniclk || l == &raceFiniLock {
    		// See comment at beginning of lockWithRank.
    		unlock2(l)
    		return
    	}
    	gp := getg()
    	systemstack(func() {
    		found := false
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:29:04 UTC 2024
    - 10.6K bytes
    - Viewed (0)
  7. src/runtime/mprof.go

    		// can't record a stack trace.
    		return
    	}
    
    	skip := 3 // runtime.(*mLockProfile).recordUnlock runtime.unlock2 runtime.unlockWithRank
    	if staticLockRanking {
    		// When static lock ranking is enabled, we'll always be on the system
    		// stack at this point. There will be a runtime.unlockWithRank.func1
    		// frame, and if the call to runtime.unlock took place on a user stack
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 53.3K bytes
    - Viewed (0)
  8. src/runtime/metrics_test.go

    						// it calls runtime.unlock. Add the extra function that
    						// we'll see, when the static lock ranking implementation of
    						// runtime.unlockWithRank switches to the system stack.
    						stk = append([]string{"runtime.unlockWithRank"}, stk...)
    					}
    				}
    				acceptStacks[i] = stk
    			}
    
    			var stks [][]string
    			values := make([][2]int64, len(acceptStacks))
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:52:17 UTC 2024
    - 45K bytes
    - Viewed (0)
Back to top