distribution/registry/storage/driver
Oleg Bulatov 258345ba0d Fix signalling Wait in regulator.enter
In some conditions, regulator.exit may not send a signal to blocked
regulator.enter.

Let's assume we are in the critical section of regulator.exit and r.available
is equal to 0. And there are three more gorotines. One goroutine also executes
regulator.exit and waits for the lock. Rest run regulator.enter and wait for
the signal.

We send the signal, and after releasing the lock, there will be lock
contention:

  1. Wait from regulator.enter
  2. Lock from regulator.exit

If the winner is Lock from regulator.exit, we will not send another signal to
unlock the second Wait.

Signed-off-by: Oleg Bulatov <obulatov@redhat.com>
2017-06-02 15:41:55 +02:00
..
azure closes #2224: re-vendor the latest Azure Storage SDK for better performance 2017-04-14 14:20:18 -07:00
base Fix signalling Wait in regulator.enter 2017-06-02 15:41:55 +02:00
factory Add documentation for how to register new StorageDrivers 2016-03-29 14:42:19 -07:00
filesystem Don't wrap thead limits when using a negative int 2016-05-03 16:03:44 -07:00
gcs StorageDriver: GCS: allow Cancel on a closed FileWriter 2016-05-06 13:04:30 +01:00
inmemory Adds new storagedriver.FileWriter interface 2016-03-08 16:37:44 -08:00
middleware fix typos 2016-06-02 23:03:27 +08:00
oss filter listResponse.Contents in driver.List() 2016-11-17 10:38:56 +08:00
s3-aws Support session token 2017-04-25 19:31:50 +02:00
s3-goamz Remove unused function 2017-05-16 17:47:13 +08:00
swift driver/swift: Fix go vet warning 2016-10-31 11:41:53 -07:00
testdriver StorageDriver: Test case for #1698 2016-05-06 13:04:30 +01:00
testsuites Fix S3 Delete method's notion of subpaths 2016-10-06 11:21:55 -07:00
fileinfo.go Move storagedriver package to registry/storage/driver 2015-02-11 12:43:04 -08:00
storagedriver.go Remove the example 2016-03-29 14:42:28 -07:00