@@ -322,16 +322,15 @@ def _detach(self, transport):
322322 self ._wakeup ()
323323
324324 def _wakeup (self ):
325- match self ._state :
326- case _ServerState .SHUTDOWN :
327- # gh109564: the wakeup method has two possible call-sites,
328- # through an explicit call Server.close(), or indirectly through
329- # Server._detach() by the last connected client.
330- return
331- case _ServerState .INITIALIZED | _ServerState .SERVING :
332- raise RuntimeError ("cannot wakeup server before closing" )
333- case _ServerState .CLOSED :
334- self ._state = _ServerState .SHUTDOWN
325+ if self ._state == _ServerState .CLOSED :
326+ self ._state = _ServerState .SHUTDOWN
327+ elif self ._state == _ServerState .SHUTDOWN :
328+ # gh109564: the wakeup method has two possible call-sites,
329+ # through an explicit call Server.close(), or indirectly through
330+ # Server._detach() by the last connected client.
331+ return
332+ else :
333+ raise RuntimeError (f"server { self !r} can only wakeup waiters after closing" )
335334
336335 waiters = self ._waiters
337336 self ._waiters = None
@@ -340,13 +339,12 @@ def _wakeup(self):
340339 waiter .set_result (None )
341340
342341 def _start_serving (self ):
343- match self ._state :
344- case _ServerState .SERVING :
345- return
346- case _ServerState .CLOSED | _ServerState .SHUTDOWN :
347- raise RuntimeError (f'server { self !r} is closed' )
348- case _ServerState .INITIALIZED :
349- self ._state = _ServerState .SERVING
342+ if self ._state == _ServerState .INITIALIZED :
343+ self ._state = _ServerState .SERVING
344+ elif self ._state == _ServerState .SERVING :
345+ return
346+ else :
347+ raise RuntimeError (f'server { self !r} is closed' )
350348
351349 for sock in self ._sockets :
352350 sock .listen (self ._backlog )
@@ -368,12 +366,10 @@ def sockets(self):
368366 return tuple (trsock .TransportSocket (s ) for s in self ._sockets )
369367
370368 def close (self ):
371- match self ._state :
372- case _ServerState .CLOSED | _ServerState .SHUTDOWN :
373- # Shutdown state can only be reached after closing.
374- return
375- case _:
376- self ._state = _ServerState .CLOSED
369+ if self ._state == _ServerState .CLOSED or self ._state == _ServerState .SHUTDOWN :
370+ return
371+ else :
372+ self ._state = _ServerState .CLOSED
377373
378374 sockets = self ._sockets
379375 if sockets is None :
0 commit comments