mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-10-04 17:33:21 +08:00
Better session lock management
This commit is contained in:
@@ -13,6 +13,8 @@ func DeleteInstance(rw http.ResponseWriter, req *http.Request) {
|
||||
instanceName := vars["instanceName"]
|
||||
|
||||
s := services.GetSession(sessionId)
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
i := services.GetInstance(s, instanceName)
|
||||
err := services.DeleteInstance(s, i)
|
||||
if err != nil {
|
||||
|
@@ -16,14 +16,13 @@ func NewInstance(rw http.ResponseWriter, req *http.Request) {
|
||||
s := services.GetSession(sessionId)
|
||||
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
if len(s.Instances) >= 5 {
|
||||
s.Unlock()
|
||||
rw.WriteHeader(http.StatusConflict)
|
||||
return
|
||||
}
|
||||
|
||||
i, err := services.NewInstance(s)
|
||||
s.Unlock()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
//TODO: Set a status error
|
||||
|
Reference in New Issue
Block a user