Skip to content

Commit ce38ada

Browse files
authored
Merge pull request aws#211 from aws/fix/lazy-loading-mc-utils
Lazy load multi-concurrent utilities for cold start improvement
2 parents d3e9632 + cc8c4f8 commit ce38ada

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

awslambdaric/__main__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
from .lambda_config import LambdaConfigProvider
88
from .lambda_runtime_client import LambdaRuntimeClient
9-
from .lambda_multi_concurrent_utils import MultiConcurrentRunner
109
from . import bootstrap
1110

1211

@@ -20,6 +19,9 @@ def main(args):
2019
# Multi-concurrent mode: redirect fork, stdout/stderr and run
2120
max_conc = int(config.max_concurrency)
2221
socket_path = config.lmi_socket_path
22+
23+
from .lambda_multi_concurrent_utils import MultiConcurrentRunner
24+
2325
MultiConcurrentRunner.run_concurrent(
2426
handler, api_addr, use_thread, socket_path, max_conc
2527
)

tests/test_main.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99

1010

1111
class TestMain(unittest.TestCase):
12+
@patch("awslambdaric.lambda_multi_concurrent_utils.MultiConcurrentRunner")
1213
@patch("awslambdaric.__main__.bootstrap")
1314
@patch("awslambdaric.__main__.LambdaRuntimeClient")
1415
@patch("awslambdaric.__main__.LambdaConfigProvider")
1516
def test_default_path_invokes_runtime_client_and_bootstrap(
16-
self, mock_config_provider, mock_client_cls, mock_bootstrap
17+
self, mock_config_provider, mock_client_cls, mock_bootstrap, mock_runner
1718
):
1819
# Non-multi-concurrent mode
1920
cfg = MagicMock()
@@ -30,7 +31,9 @@ def test_default_path_invokes_runtime_client_and_bootstrap(
3031
"my.handler", mock_client_cls.return_value
3132
)
3233

33-
@patch("awslambdaric.__main__.MultiConcurrentRunner")
34+
mock_runner.run_concurrent.assert_not_called()
35+
36+
@patch("awslambdaric.lambda_multi_concurrent_utils.MultiConcurrentRunner")
3437
@patch("awslambdaric.__main__.LambdaConfigProvider")
3538
def test_multi_concurrent_path_dispatches_to_multi_concurrent_runner(
3639
self, mock_config_provider, mock_runner

0 commit comments

Comments
 (0)