Re: [Cppcms-users] Unmount asynchronous application from application pool
Brought to you by:
artyom-beilis
|
From: Le Ba <hma...@gm...> - 2013-11-17 15:38:35
|
Hi, I think when the reference goes null with app.release() normally all object are deleted but I don't know if the usage of applications_pool() is correct or not. Your opinion Artyom??? Sincerely. 2013/11/17 DieterM75 . <die...@gm...> > Thanks for the hint! > > I sure was calling service.run twice... > > Nontheless I removed the call in the while loop, but I still get multiple > messages written to the console. Is it possible that the service does not > get stopped properly and its threads keep on running? If so, how can I > securely delete my service object with all its threads? I thought > I could use it the 'RAII' way... > > Sincerely > Dieter > > > On Sun, Nov 17, 2013 at 11:39 AM, Le Ba <hma...@gm...> wrote: > >> Excuse my poor English. I mean: I assume that you no longer need call >> service.run () again in "while" block in "main". you have called >> service.run () in the Activator constructor >> >> >> 2013/11/15 DieterM75 . <die...@gm...> >> >>> Hey, >>> >>> I tried the following code: >>> >>> http://pastie.org/8483126 >>> >>> Output is as follows: >>> >>> 2013-11-15 18:31:25; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:31:25; App, debug: ctor (main.cpp:36) >>> >>> Exception! >>> >>> 2013-11-15 18:31:28; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:31:48; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:34:43; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:34:43; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:34:43; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:34:43; App, debug: ctor (main.cpp:36) >>> >>> Exception! >>> >>> 2013-11-15 18:35:33; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:35:33; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:35:40; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:35:40; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:41:44; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:41:44; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:41:44; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:41:44; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:41:44; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:41:44; App, debug: ctor (main.cpp:36) >>> >>> Exception! >>> >>> 2013-11-15 18:41:58; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:41:58; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:41:58; App, debug: dtor (main.cpp:39) >>> >>> 2013-11-15 18:43:16; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:43:16; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:43:16; main, debug: Restarting service! (main.cpp:106) >>> >>> 2013-11-15 18:43:22; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:43:22; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:43:22; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:43:22; Activator, debug: Created service! (main.cpp:70) >>> >>> 2013-11-15 18:43:22; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:43:22; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:43:22; App, debug: ctor (main.cpp:36) >>> >>> 2013-11-15 18:43:22; App, debug: ctor (main.cpp:36) >>> >>> Maybe someone sees the error in my code, I clearly dont :) >>> >>> Sincerely >>> Dieter >>> >>> >>> ---------- Forwarded message ---------- >>> From: Artyom Beilis <art...@ya...> >>> Date: Sat, Nov 9, 2013 at 12:54 PM >>> Subject: Re: [Cppcms-users] Unmount asynchronous application from >>> application pool >>> To: cpp...@li... >>> >>> >>> There two things. >>> >>> - The tutorial describes the situation were the ENTIRE cppcms service is >>> reloaded. In case of pointers to asynchronous applications, you can reset >>> them withing if(got_sighup) { ... } section. >>> >>> Additionally you can remove the asynchronous application by simply >>> expiring its pointer. Once all the references (for example kept in >>> callbacks) and your reference are expired it would be deleted. Asynchronous >>> applications can be removed and added dynamically (unlike synchronous ones >>> that only can be added) >>> >>> >>> Artyom Beilis >>> -------------- >>> CppCMS - C++ Web Framework: http://cppcms.com/ >>> CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >>> >>> -------------------------------------------- >>> On Fri, 11/8/13, DieterM75 . <die...@gm...> wrote: >>> >>> Subject: [Cppcms-users] Unmount asynchronous application from >>> application pool >>> To: cpp...@li... >>> Date: Friday, November 8, 2013, 9:58 AM >>> >>> Hello, >>> >>> I mount my application via the mount(booster::intrusive_ptr) >>> method of the application pool class. >>> I also try to implement some kind of reload mechanism, >>> so that the service can start over again after certain >>> errors. >>> >>> The example "reload the application" ( >>> http://cppcms.com/wikipp/en/page/cppcms_1x_reload_application) >>> does not cover how to deal with asynchronous applications. >>> If I pass an anonymous intrusive_ptr reference to the >>> method, it gets created and destroyed immediately. Now if >>> the signal gets handled and the service shutdown, the >>> mounted application gets constructed and destroyed twice. >>> Basically every time the signal is processed, the >>> application pool does not automatically destroy the long >>> running apps. >>> >>> Is there a way to avoid this problem? >>> >>> Sincerely >>> Müller >>> >>> >>> -----Inline Attachment Follows----- >>> >>> >>> ------------------------------------------------------------------------------ >>> November Webinars for C, C++, Fortran Developers >>> Accelerate application performance with scalable programming >>> models. Explore >>> techniques for threading, error checking, porting, and >>> tuning. Get the most >>> from the latest Intel processors and coprocessors. See >>> abstracts and register >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk >>> -----Inline Attachment Follows----- >>> >>> _______________________________________________ >>> Cppcms-users mailing list >>> Cpp...@li... >>> https://lists.sourceforge.net/lists/listinfo/cppcms-users >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> November Webinars for C, C++, Fortran Developers >>> Accelerate application performance with scalable programming models. >>> Explore >>> techniques for threading, error checking, porting, and tuning. Get the >>> most >>> from the latest Intel processors and coprocessors. See abstracts and >>> register >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Cppcms-users mailing list >>> Cpp...@li... >>> https://lists.sourceforge.net/lists/listinfo/cppcms-users >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >>> Free app hosting. Or install the open source package on any LAMP server. >>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Cppcms-users mailing list >>> Cpp...@li... >>> https://lists.sourceforge.net/lists/listinfo/cppcms-users >>> >>> >> >> >> ------------------------------------------------------------------------------ >> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >> Free app hosting. Or install the open source package on any LAMP server. >> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users >> >> > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > |