@@ -548,17 +548,21 @@ class Parser : public AsyncWrap, public StreamListener {
548548 Parser* parser;
549549 ASSIGN_OR_RETURN_UNWRAP (&parser, args.Holder ());
550550
551- if (parser->connectionsList_ != nullptr ) {
552- parser->connectionsList_ ->Pop (parser);
553- parser->connectionsList_ ->PopActive (parser);
554- }
555-
556551 // Since the Parser destructor isn't going to run the destroy() callbacks
557552 // it needs to be triggered manually.
558553 parser->EmitTraceEventDestroy ();
559554 parser->EmitDestroy ();
560555 }
561556
557+ static void Remove (const FunctionCallbackInfo<Value>& args) {
558+ Parser* parser;
559+ ASSIGN_OR_RETURN_UNWRAP (&parser, args.Holder ());
560+
561+ if (parser->connectionsList_ != nullptr ) {
562+ parser->connectionsList_ ->Pop (parser);
563+ parser->connectionsList_ ->PopActive (parser);
564+ }
565+ }
562566
563567 void Save () {
564568 url_.Save ();
@@ -1221,6 +1225,7 @@ void InitializeHttpParser(Local<Object> target,
12211225 t->Inherit (AsyncWrap::GetConstructorTemplate (env));
12221226 env->SetProtoMethod (t, " close" , Parser::Close);
12231227 env->SetProtoMethod (t, " free" , Parser::Free);
1228+ env->SetProtoMethod (t, " remove" , Parser::Remove);
12241229 env->SetProtoMethod (t, " execute" , Parser::Execute);
12251230 env->SetProtoMethod (t, " finish" , Parser::Finish);
12261231 env->SetProtoMethod (t, " initialize" , Parser::Initialize);
0 commit comments