recipes.cfg: manually roll deps

BUG=None
TEST=generate

Change-Id: I791c75c9ea25fa80fc75550959f4337cbcb010c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra/proto/+/2416242
Auto-Submit: LaMont Jones <lamontjones@chromium.org>
Tested-by: LaMont Jones <lamontjones@chromium.org>
Commit-Queue: David Burger <dburger@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
diff --git a/infra/config/recipes.cfg b/infra/config/recipes.cfg
index c6b45da..5a9012e 100644
--- a/infra/config/recipes.cfg
+++ b/infra/config/recipes.cfg
@@ -16,12 +16,12 @@
   "deps": {
     "chromiumos_config": {
       "branch": "refs/heads/master",
-      "revision": "a4a43bd9e9c98ee22ca0b1bc11e625d5dee9c999",
+      "revision": "38cfe8c90bbef7b1a2583ac7c86082b98e2a87ed",
       "url": "https://chromium.googlesource.com/chromiumos/config.git"
     },
     "recipe_engine": {
       "branch": "refs/heads/master",
-      "revision": "947bd8d8a407054baf1e0074c818d0620d32cf1d",
+      "revision": "ff8e5c909f5f4049ccf543af4f36e5a8b58b379f",
       "url": "https://chromium.googlesource.com/infra/luci/recipes-py.git"
     }
   },
diff --git a/recipes/recipes.py b/recipes/recipes.py
index c87581f..4e37b9c 100755
--- a/recipes/recipes.py
+++ b/recipes/recipes.py
@@ -104,7 +104,9 @@
     raise MalformedRecipesCfg(ex.message, recipes_cfg_path)
 
 
-_BAT = '.bat' if sys.platform.startswith(('win', 'cygwin')) else ''
+IS_WIN = sys.platform.startswith(('win', 'cygwin'))
+
+_BAT = '.bat' if IS_WIN else ''
 GIT = 'git' + _BAT
 VPYTHON = 'vpython' + _BAT
 CIPD = 'cipd' + _BAT
@@ -129,6 +131,7 @@
   return subprocess.call(argv, **kwargs)
 
 
+
 def _git_check_call(argv, **kwargs):
   argv = [GIT] + argv
   logging.info('Running %r', argv)
@@ -237,12 +240,19 @@
 
   engine_path = checkout_engine(engine_override, repo_root, recipes_cfg_path)
 
-  try:
-    return _subprocess_call(
-        [VPYTHON, '-u',
-         os.path.join(engine_path, 'recipe_engine', 'main.py')] + args)
-  except KeyboardInterrupt:
-    return 1
+  argv = (
+    [VPYTHON, '-u', os.path.join(engine_path, 'recipe_engine', 'main.py')] +
+    args)
+
+  if IS_WIN:
+    # No real 'exec' on windows; set these signals to ignore so that they
+    # propagate to our children but we still wait for the child process to quit.
+    signal.signal(signal.SIGBREAK, signal.SIG_IGN)
+    signal.signal(signal.SIGINT, signal.SIG_IGN)
+    signal.signal(signal.SIGTERM, signal.SIG_IGN)
+    return _subprocess_call(argv)
+  else:
+    os.execvp(argv[0], argv)
 
 
 if __name__ == '__main__':