MCPcopy Create free account
hub / github.com/baidu/EasyFaaS / LockContainer

Method LockContainer

pkg/funclet/container.go:44–62  ·  view source on GitHub ↗
(id string, event api.Event, ctx *funcletCtx.Context)

Source from the content-addressed store, hash-verified

42}
43
44func (m *ContainerManager) LockContainer(id string, event api.Event, ctx *funcletCtx.Context) (res bool, err error) {
45 info, err := m.ContainerMap.GetContainer(id)
46 if err != nil {
47 ctx.Logger.Errorf("get container %s status err %s", id, err)
48 return
49 }
50 res = info.EventLock.Lock()
51 if res {
52 ctx.Logger.V(9).Infof("get lock success, container %s event %s", id, event)
53 info.CurrentEvent = event
54 } else {
55 err = &ContainerIsBusy{
56 ID: id,
57 CurrentEvent: info.CurrentEvent,
58 TriggerEvent: event,
59 }
60 }
61 return
62}
63
64func (m *ContainerManager) UnLockContainer(id string, ctx *funcletCtx.Context) (err error) {
65 info, err := m.ContainerMap.GetContainer(id)

Callers 4

WarmUpContainerEventMethod · 0.80
ResetContainerEventMethod · 0.80
InitContainerEventMethod · 0.80

Calls 5

GetContainerMethod · 0.80
ErrorfMethod · 0.80
LockMethod · 0.80
InfofMethod · 0.80
VMethod · 0.80

Tested by

no test coverage detected