Re: [Cppcms-users] Unmount asynchronous application from application pool
Brought to you by:
artyom-beilis
|
From: DieterM75 . <die...@gm...> - 2013-11-15 18:11:44
|
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 |