FLUSH(&recvOK);
}
+static void closechan(Hchan *c, void *pc);
+
// closechan(sel *byte);
#pragma textflag 7
void
runtime·closechan(Hchan *c)
+{
+ closechan(c, runtime·getcallerpc(&c));
+}
+
+// For reflect
+// func chanclose(c chan)
+#pragma textflag 7
+void
+reflect·chanclose(Hchan *c)
+{
+ closechan(c, runtime·getcallerpc(&c));
+}
+
+static void
+closechan(Hchan *c, void *pc)
{
SudoG *sg;
G* gp;
}
if(raceenabled) {
- runtime·racewritepc(c, runtime·getcallerpc(&c), runtime·closechan);
+ runtime·racewritepc(c, pc, runtime·closechan);
runtime·racerelease(c);
}
runtime·unlock(c);
}
-// For reflect
-// func chanclose(c chan)
-void
-reflect·chanclose(Hchan *c)
-{
- runtime·closechan(c);
-}
-
// For reflect
// func chanlen(c chan) (len int)
void