| 425 | self.serve_client(c) |
| 426 | |
| 427 | def incref(self, c, ident): |
| 428 | with self.mutex: |
| 429 | try: |
| 430 | self.id_to_refcount[ident] += 1 |
| 431 | except KeyError as ke: |
| 432 | # If no external references exist but an internal (to the |
| 433 | # manager) still does and a new external reference is created |
| 434 | # from it, restore the manager's tracking of it from the |
| 435 | # previously stashed internal ref. |
| 436 | if ident in self.id_to_local_proxy_obj: |
| 437 | self.id_to_refcount[ident] = 1 |
| 438 | self.id_to_obj[ident] = \ |
| 439 | self.id_to_local_proxy_obj[ident] |
| 440 | util.debug('Server re-enabled tracking & INCREF %r', ident) |
| 441 | else: |
| 442 | raise ke |
| 443 | |
| 444 | def decref(self, c, ident): |
| 445 | if ident not in self.id_to_refcount and \ |