issue3352: clean up the multiprocessing API to remove many get_/set_ methods and convert them to properties. Update the docs and the examples included.
diff --git a/Lib/multiprocessing/dummy/__init__.py b/Lib/multiprocessing/dummy/__init__.py
index f12ac11..73bf218 100644
--- a/Lib/multiprocessing/dummy/__init__.py
+++ b/Lib/multiprocessing/dummy/__init__.py
@@ -47,7 +47,8 @@
         self._parent._children[self] = None
         threading.Thread.start(self)
 
-    def get_exitcode(self):
+    @property
+    def exitcode(self):
         if self._start_called and not self.is_alive():
             return 0
         else:
diff --git a/Lib/multiprocessing/forking.py b/Lib/multiprocessing/forking.py
index cb7f323..7eda991 100644
--- a/Lib/multiprocessing/forking.py
+++ b/Lib/multiprocessing/forking.py
@@ -360,7 +360,7 @@
             sys_argv=sys.argv,
             log_to_stderr=_log_to_stderr,
             orig_dir=process.ORIGINAL_DIR,
-            authkey=process.current_process().get_authkey(),
+            authkey=process.current_process().authkey,
             )
 
         if _logger is not None:
@@ -407,7 +407,7 @@
     old_main_modules.append(sys.modules['__main__'])
 
     if 'name' in data:
-        process.current_process().set_name(data['name'])
+        process.current_process().name = data['name']
 
     if 'authkey' in data:
         process.current_process()._authkey = data['authkey']
diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py
index 6f0cc7d..256e572 100644
--- a/Lib/multiprocessing/managers.py
+++ b/Lib/multiprocessing/managers.py
@@ -444,7 +444,7 @@
 
     def __init__(self, address=None, authkey=None, serializer='pickle'):
         if authkey is None:
-            authkey = current_process().get_authkey()
+            authkey = current_process().authkey
         self._address = address     # XXX not final address if eg ('', 0)
         self._authkey = AuthenticationString(authkey)
         self._state = State()
@@ -489,7 +489,7 @@
                   self._serializer, writer),
             )
         ident = ':'.join(str(i) for i in self._process._identity)
-        self._process.set_name(type(self).__name__  + '-' + ident)
+        self._process.name = type(self).__name__  + '-' + ident
         self._process.start()
 
         # get address of server
@@ -690,7 +690,7 @@
         elif self._manager is not None:
             self._authkey = self._manager._authkey
         else:
-            self._authkey = current_process().get_authkey()
+            self._authkey = current_process().authkey
 
         if incref:
             self._incref()
@@ -699,7 +699,7 @@
 
     def _connect(self):
         util.debug('making connection to manager')
-        name = current_process().get_name()
+        name = current_process().name
         if threading.current_thread().name != 'MainThread':
             name += '|' + threading.current_thread().name
         conn = self._Client(self._token.address, authkey=self._authkey)
@@ -880,7 +880,7 @@
     if authkey is None and manager is not None:
         authkey = manager._authkey
     if authkey is None:
-        authkey = current_process().get_authkey()
+        authkey = current_process().authkey
 
     ProxyType = MakeProxyType('AutoProxy[%s]' % token.typeid, exposed)
     proxy = ProxyType(token, serializer, manager=manager, authkey=authkey,
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
index 1d24691..cb9f02a 100644
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -99,7 +99,7 @@
                 args=(self._inqueue, self._outqueue, initializer, initargs)
                 )
             self._pool.append(w)
-            w.name = w.get_name().replace('Process', 'PoolWorker')
+            w.name = w.name.replace('Process', 'PoolWorker')
             w.daemon = True
             w.start()
 
diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py
index d5d3c40..b034317 100644
--- a/Lib/multiprocessing/process.py
+++ b/Lib/multiprocessing/process.py
@@ -132,45 +132,43 @@
         self._popen.poll()
         return self._popen.returncode is None
 
-    def get_name(self):
-        '''
-        Return name of process
-        '''
+    @property
+    def name(self):
         return self._name
 
-    def set_name(self, name):
-        '''
-        Set name of process
-        '''
+    @name.setter
+    def name(self, name):
         assert isinstance(name, str), 'name must be a string'
         self._name = name
 
-    def is_daemon(self):
+    @property
+    def daemon(self):
         '''
         Return whether process is a daemon
         '''
         return self._daemonic
 
-    def set_daemon(self, daemonic):
+    @daemon.setter
+    def daemon(self, daemonic):
         '''
         Set whether process is a daemon
         '''
         assert self._popen is None, 'process has already started'
         self._daemonic = daemonic
 
-    def get_authkey(self):
-        '''
-        Return authorization key of process
-        '''
+    @property
+    def authkey(self):
         return self._authkey
 
-    def set_authkey(self, authkey):
+    @authkey.setter
+    def authkey(self, authkey):
         '''
         Set authorization key of process
         '''
         self._authkey = AuthenticationString(authkey)
 
-    def get_exitcode(self):
+    @property
+    def exitcode(self):
         '''
         Return exit code of process or `None` if it has yet to stop
         '''
@@ -178,7 +176,8 @@
             return self._popen
         return self._popen.poll()
 
-    def get_ident(self):
+    @property
+    def ident(self):
         '''
         Return indentifier (PID) of process or `None` if it has yet to start
         '''
@@ -187,7 +186,7 @@
         else:
             return self._popen and self._popen.pid
 
-    pid = property(get_ident)
+    pid = ident
 
     def __repr__(self):
         if self is _current_process:
@@ -198,7 +197,7 @@
             status = 'initial'
         else:
             if self._popen.poll() is not None:
-                status = self.get_exitcode()
+                status = self.exitcode
             else:
                 status = 'started'
 
@@ -245,7 +244,7 @@
         except:
             exitcode = 1
             import traceback
-            sys.stderr.write('Process %s:\n' % self.get_name())
+            sys.stderr.write('Process %s:\n' % self.name)
             sys.stderr.flush()
             traceback.print_exc()
 
diff --git a/Lib/multiprocessing/reduction.py b/Lib/multiprocessing/reduction.py
index e6b5ac7..1813729 100644
--- a/Lib/multiprocessing/reduction.py
+++ b/Lib/multiprocessing/reduction.py
@@ -81,9 +81,9 @@
         try:
             if _listener is None:
                 debug('starting listener and thread for sending handles')
-                _listener = Listener(authkey=current_process().get_authkey())
+                _listener = Listener(authkey=current_process().authkey)
                 t = threading.Thread(target=_serve)
-                t.set_daemon(True)
+                t.daemon = True
                 t.start()
         finally:
             _lock.release()
@@ -126,7 +126,7 @@
     if inherited:
         return handle
     sub_debug('rebuilding handle %d', handle)
-    conn = Client(address, authkey=current_process().get_authkey())
+    conn = Client(address, authkey=current_process().authkey)
     conn.send((handle, os.getpid()))
     new_handle = recv_handle(conn)
     conn.close()
diff --git a/Lib/multiprocessing/synchronize.py b/Lib/multiprocessing/synchronize.py
index 1ebd7b6..428656a 100644
--- a/Lib/multiprocessing/synchronize.py
+++ b/Lib/multiprocessing/synchronize.py
@@ -108,9 +108,9 @@
     def __repr__(self):
         try:
             if self._semlock._is_mine():
-                name = current_process().get_name()
-                if threading.current_thread().get_name() != 'MainThread':
-                    name += '|' + threading.current_thread().get_name()
+                name = current_process().name
+                if threading.current_thread().name != 'MainThread':
+                    name += '|' + threading.current_thread().name
             elif self._semlock._get_value() == 1:
                 name = 'None'
             elif self._semlock._count() > 0:
@@ -133,9 +133,9 @@
     def __repr__(self):
         try:
             if self._semlock._is_mine():
-                name = current_process().get_name()
-                if threading.current_thread().get_name() != 'MainThread':
-                    name += '|' + threading.current_thread().get_name()
+                name = current_process().name
+                if threading.current_thread().name != 'MainThread':
+                    name += '|' + threading.current_thread().name
                 count = self._semlock._count()
             elif self._semlock._get_value() == 1:
                 name, count = 'None', 0
diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py
index 2768e9a..7d53512 100644
--- a/Lib/multiprocessing/util.py
+++ b/Lib/multiprocessing/util.py
@@ -273,11 +273,11 @@
 
     for p in active_children():
         if p._daemonic:
-            info('calling terminate() for daemon %s', p.get_name())
+            info('calling terminate() for daemon %s', p.name)
             p._popen.terminate()
 
     for p in active_children():
-        info('calling join() for process %s', p.get_name())
+        info('calling join() for process %s', p.name)
         p.join()
 
     debug('running the remaining "atexit" finalizers')