spiegel_podman/libpod
Alexander Larsson 1f24b4fcd9 libpod: Remove 100msec delay during shutdown
When shutting down the image engine we always wait for the image
even goroutine to finish writing any outstanding events. However,
the loop for that always waits 100msec every iteration. This means
that (depending on the phase) shutdown is always delayed up to 100msec.

This is delaying "podman run" extra much because podman is run twice
(once for the run and once as cleanup via a conmon callback).

Changing the image loop to exit immediately when a libimageEventsShutdown
(but first checking for any outstanding events to write) improves podman
run times by about 100msec on average.

Note: We can't just block on the event loop reading the shutdown event
anymore, we need to wait until it read and processed any outstanding
events, so we now send the shutdown event and then block waiting for the
channel to be closed by the event loop.

[NO NEW TESTS NEEDED]

Signed-off-by: Alexander Larsson <alexl@redhat.com>
Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2022-10-21 16:30:22 -04:00
..
define Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
logs libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
plugin Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
shutdown libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go Ensure that a broken OCI spec does not break inspect 2022-09-23 11:38:28 -04:00
container_api.go container wait: improve error message 2022-07-26 14:40:52 -04:00
container_commit.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_config.go health check: add on-failure actions 2022-09-27 10:40:36 +02:00
container_copy_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_exec.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
container_graph.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go health check: add on-failure actions 2022-09-27 10:40:36 +02:00
container_internal.go healthcheck: fix --on-failure=stop 2022-10-11 16:15:43 +02:00
container_internal_linux.go Add container GID to additional groups 2022-09-08 15:33:29 +00:00
container_internal_linux_test.go test: use T.TempDir to create temporary test directory 2022-05-05 21:09:41 +08:00
container_internal_test.go test: fix failing TestPostDeleteHooks 2022-05-05 21:39:46 +08:00
container_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_log.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_linux.go fix goroutine leaks in events and logs backend 2022-07-26 13:54:28 -04:00
container_log_unsupported.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_path_resolution.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_stat_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_top_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_validate.go health check: add on-failure actions 2022-09-27 10:40:36 +02:00
diff.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
healthcheck.go health checks: make on-failure action retry aware 2022-10-07 13:47:06 -04:00
healthcheck_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
info.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
info_test.go Robust whitespace split of cpu utilization line from /proc/stat 2022-05-14 00:34:56 +00:00
kube.go Add ports and hostname correctly in kube yaml 2022-07-08 11:21:48 -04:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
networking_linux_test.go enable unparam linter 2022-04-25 13:23:20 +02:00
networking_machine.go enable gocritic linter 2022-04-26 18:12:22 +02:00
networking_slirp4netns.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
oci.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_attach_linux.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon_exec_linux.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_conmon_linux.go libpod: UpdateContainerStatus: do not wait for container 2022-09-12 09:20:38 +02:00
oci_missing.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
oci_util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
options.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
pod.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_api.go Merge pull request #14501 from cdoern/podUTS 2022-07-06 14:51:22 +00:00
pod_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go libpod/pod_top_linux.go: s/TODO/NOTE/ 2022-05-25 12:30:19 +02:00
reset.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
runtime.go libpod: Remove 100msec delay during shutdown 2022-10-21 16:30:22 -04:00
runtime_cstorage.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_ctr.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_img.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_migrate.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod_linux.go libpod: do not lock all containers on pod rm 2022-07-26 14:42:19 -04:00
runtime_renumber.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume_linux.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
runtime_worker.go work queue: simplify and use a wait group 2022-05-25 10:17:46 +02:00
service.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
state.go libpod: fix wait and exit-code logic 2022-06-23 09:11:57 -04:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
storage.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
volume_inspect.go Add support for containers.conf volume timeouts 2022-10-06 15:07:10 -04:00
volume_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00