mirror of
https://github.com/containers/podman
synced 2024-10-19 16:54:07 +00:00
libimage-events channel: fix data race
Fix a data race between creating and using the libimage-events channel. [NO TESTS NEEDED] since it really depends on the scheduler and we couldn't hit the race so far. Fixes: #10459 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
parent
d0f5796c39
commit
d1c9e034ff
|
@ -217,8 +217,6 @@ func newRuntimeFromConfig(ctx context.Context, conf *config.Config, options ...R
|
|||
return nil, err
|
||||
}
|
||||
|
||||
runtime.libimageEventsShutdown = make(chan bool)
|
||||
|
||||
return runtime, nil
|
||||
}
|
||||
|
||||
|
@ -701,6 +699,8 @@ var libimageEventsMap = map[libimage.EventType]events.Status{
|
|||
// events on the libimage.Runtime. The gourtine will be cleaned up implicitly
|
||||
// when the main() exists.
|
||||
func (r *Runtime) libimageEvents() {
|
||||
r.libimageEventsShutdown = make(chan bool)
|
||||
|
||||
toLibpodEventStatus := func(e *libimage.Event) events.Status {
|
||||
status, found := libimageEventsMap[e.Type]
|
||||
if !found {
|
||||
|
@ -780,7 +780,9 @@ func (r *Runtime) Shutdown(force bool) error {
|
|||
// attempt to shut it down
|
||||
if r.store != nil {
|
||||
// Wait for the events to be written.
|
||||
r.libimageEventsShutdown <- true
|
||||
if r.libimageEventsShutdown != nil {
|
||||
r.libimageEventsShutdown <- true
|
||||
}
|
||||
|
||||
// Note that the libimage runtime shuts down the store.
|
||||
if err := r.libimageRuntime.Shutdown(force); err != nil {
|
||||
|
|
Loading…
Reference in a new issue