bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034)


This was causing test___all__ to fail on platforms lacking a shared
memory implementation.

Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
(cherry picked from commit d0978761118856e8ca8ea7b162a6585b8da83df9)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py
index b981b0e..b6b4cdd 100644
--- a/Lib/multiprocessing/managers.py
+++ b/Lib/multiprocessing/managers.py
@@ -8,8 +8,7 @@
 # Licensed to PSF under a Contributor Agreement.
 #
 
-__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token',
-            'SharedMemoryManager' ]
+__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ]
 
 #
 # Imports
@@ -35,9 +34,11 @@
 from . import get_context
 try:
     from . import shared_memory
-    HAS_SHMEM = True
 except ImportError:
     HAS_SHMEM = False
+else:
+    HAS_SHMEM = True
+    __all__.append('SharedMemoryManager')
 
 #
 # Register some things for pickling