207 |
207 |
208 return 0; |
208 return 0; |
209 } |
209 } |
210 |
210 |
211 void http_listener_ref(HttpListener *listener) { |
211 void http_listener_ref(HttpListener *listener) { |
212 ucx_atomic_inc_32(&listener->ref); |
212 ws_atomic_inc32(&listener->ref); |
213 } |
213 } |
214 |
214 |
215 void http_listener_unref(HttpListener *listener) { |
215 void http_listener_unref(HttpListener *listener) { |
216 uint32_t ref = ucx_atomic_dec_32_nv(&listener->ref); |
216 uint32_t ref = ws_atomic_dec32(&listener->ref); |
217 if(ref == 0) { |
217 if(ref == 0) { |
218 free(listener->acceptors); |
218 free(listener->acceptors); |
219 // TODO: unref cfg |
219 // TODO: unref cfg |
220 // TODO: unref session handler |
220 // TODO: unref session handler |
221 free(listener); |
221 free(listener); |