@@ -94,7 +94,6 @@ class LifeCycleHook:
94
94
"_effect_funcs" ,
95
95
"_effect_starts" ,
96
96
"_effect_stops" ,
97
- "_is_rendering" ,
98
97
"_render_access" ,
99
98
"_rendered_atleast_once" ,
100
99
"_schedule_render_callback" ,
@@ -112,7 +111,6 @@ def __init__(
112
111
self ._context_providers : dict [Context [Any ], ContextProviderType [Any ]] = {}
113
112
self ._schedule_render_callback = schedule_render
114
113
self ._schedule_render_later = False
115
- self ._is_rendering = False
116
114
self ._rendered_atleast_once = False
117
115
self ._current_state_index = 0
118
116
self ._state : tuple [Any , ...] = ()
@@ -121,7 +119,7 @@ def __init__(
121
119
self ._render_access = Semaphore (1 ) # ensure only one render at a time
122
120
123
121
def schedule_render (self ) -> None :
124
- if self ._is_rendering :
122
+ if self ._is_rendering () :
125
123
self ._schedule_render_later = True
126
124
else :
127
125
self ._schedule_render ()
@@ -153,14 +151,12 @@ async def affect_component_will_render(self, component: ComponentType) -> None:
153
151
"""The component is about to render"""
154
152
await self ._render_access .acquire ()
155
153
self .component = component
156
- self ._is_rendering = True
157
154
self .set_current ()
158
155
159
156
async def affect_component_did_render (self ) -> None :
160
157
"""The component completed a render"""
161
158
self .unset_current ()
162
159
del self .component
163
- self ._is_rendering = False
164
160
self ._rendered_atleast_once = True
165
161
self ._current_state_index = 0
166
162
self ._render_access .release ()
@@ -202,6 +198,9 @@ def unset_current(self) -> None:
202
198
if _HOOK_STATE .get ().pop () is not self :
203
199
raise RuntimeError ("Hook stack is in an invalid state" ) # nocov
204
200
201
+ def _is_rendering (self ) -> bool :
202
+ return self ._render_access .value != 0
203
+
205
204
def _schedule_render (self ) -> None :
206
205
try :
207
206
self ._schedule_render_callback ()
0 commit comments