Lines Matching full:gp

63 	gp := getg()
64 if gp != nil && gp.m != nil && gp.m.mallocing != 0 {
77 gp := getg()
78 if gp != nil && gp.m != nil && gp.m.mallocing != 0 {
273 gp := getg()
274 if gp.m.curg != gp {
280 d.link = gp._defer
281 gp._defer = d
388 gp := getg()
389 if gp.m.curg != gp {
395 d.link = gp._defer
396 gp._defer = d
477 gp := getg()
478 if gp.m.curg != gp {
492 // d.link = gp._defer
494 // gp._defer = d
501 *(*uintptr)(unsafe.Pointer(&d.link)) = uintptr(unsafe.Pointer(gp._defer))
503 *(*uintptr)(unsafe.Pointer(&gp._defer)) = uintptr(unsafe.Pointer(d))
545 // popDefer pops the head of gp's defer list and frees it.
546 func popDefer(gp *g) {
547 d := gp._defer
549 // We must not copy the stack between the updating gp._defer and setting
553 gp._defer = d.link
744 gp := getg()
745 if gp.m.curg != gp {
752 if gp.m.mallocing != 0 {
758 if gp.m.preemptoff != "" {
763 print(gp.m.preemptoff)
767 if gp.m.locks != 0 {
812 gp := getg()
824 if s := (*savedOpenDeferState)(gp.param); s != nil {
828 gp.param = nil
838 p.link = gp._panic
839 gp._panic = (*_panic)(noescape(unsafe.Pointer(p)))
857 gp := getg()
860 if gp._panic != p {
902 if d := gp._defer; d != nil && d.sp == uintptr(p.sp) {
905 popDefer(gp)
917 popDefer(gp)
934 gp := getg()
937 if d := gp._defer; d != nil {
942 u.initAt(p.lr, uintptr(p.fp), 0, gp, 0)
1015 gp := getg()
1016 p := gp._panic
1109 func recovery(gp *g) {
1110 p := gp._panic
1143 gp._panic = p
1146 gp.sig = 0
1149 if gp.param != nil {
1150 throw("unexpected gp.param")
1156 gp.param = unsafe.Pointer(&savedOpenDeferState{
1192 if sp != 0 && (sp < gp.stack.lo || gp.stack.hi < sp) {
1193 print("recover: ", hex(sp), " not in [", hex(gp.stack.lo), ", ", hex(gp.stack.hi), "]\n")
1200 gp.sched.sp = sp
1201 gp.sched.pc = pc
1202 gp.sched.lr = 0
1211 gp.sched.bp = fp - 2*goarch.PtrSize
1216 gp.sched.bp = sp - goarch.PtrSize
1218 gp.sched.ret = 1
1219 gogo(&gp.sched)
1230 gp := getg()
1232 if gp.m.throwing == throwTypeNone {
1233 gp.m.throwing = t
1245 if dopanic_m(gp, pc, sp) {
1266 gp := getg()
1283 docrash = dopanic_m(gp, pc, sp)
1313 gp := getg()
1321 gp.m.mallocing++
1325 if gp.m.locks < 0 {
1326 gp.m.locks = 1
1329 switch gp.m.dying {
1332 gp.m.dying = 1
1343 gp.m.dying = 2
1349 gp.m.dying = 3
1363 // gp is the crashing g running on this M, but may be a user G, while getg() is
1365 func dopanic_m(gp *g, pc, sp uintptr) bool {
1366 if gp.sig != 0 {
1367 signame := signame(gp.sig)
1371 print("[signal ", hex(gp.sig))
1373 print(" code=", hex(gp.sigcode0), " addr=", hex(gp.sigcode1), " pc=", hex(gp.sigpc), "]\n")
1378 if gp != gp.m.curg {
1381 if gp != gp.m.g0 {
1383 goroutineheader(gp)
1384 traceback(pc, sp, 0, gp)
1385 } else if level >= 2 || gp.m.throwing >= throwTypeRuntime {
1387 traceback(pc, sp, 0, gp)
1391 tracebackothers(gp)
1415 gp := getg()
1418 // Is it okay for gp to panic instead of crashing the program?
1421 if gp != mp.curg {
1430 status := readgstatus(gp)
1431 if status&^_Gscan != _Grunning || gp.syscallsp != 0 {
1448 func shouldPushSigpanic(gp *g, pc, lr uintptr) bool {
1466 if gp.m.incgo || findfunc(pc).valid() {