]> Cypherpunks repositories - gostls13.git/commitdiff
sync.once: document that Do cannot be invoked recursively.
authorRob Pike <r@golang.org>
Thu, 12 Aug 2010 02:59:37 +0000 (12:59 +1000)
committerRob Pike <r@golang.org>
Thu, 12 Aug 2010 02:59:37 +0000 (12:59 +1000)
documentation change only.

R=rsc
CC=golang-dev
https://golang.org/cl/1964043

src/pkg/sync/once.go

index 298d8e85f1b133e73f032f818b9c4e12d1c624ab..8c877cdec21c5da9f61bdad0c6bdedfb4232102b 100644 (file)
@@ -13,7 +13,7 @@ type Once struct {
 // Do calls the function f if and only if the method is being called for the
 // first time with this receiver.  In other words, given
 //     var once Once
-// if once.Do(f) is called multiple times, only the first call will invoke f,
+// if Do(f) is called multiple times, only the first call will invoke f,
 // even if f has a different value in each invocation.  A new instance of
 // Once is required for each function to execute.
 //
@@ -22,6 +22,9 @@ type Once struct {
 // arguments to a function to be invoked by Do:
 //     config.once.Do(func() { config.init(filename) })
 //
+// Because no call to Do returns until the one call to f returns, if f causes
+// Do to be called, it will deadlock.
+//
 func (o *Once) Do(f func()) {
        o.m.Lock()
        defer o.m.Unlock()