Ignore:
Timestamp:
08/27/08 11:18:15 (12 years ago)
Author:
Eoin
Message:

Added win32_exception class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/halSession.cpp

    r554 r564  
    1818#include <libtorrent/torrent_handle.hpp> 
    1919#include <libtorrent/create_torrent.hpp> 
     20 
     21#include "win32_exception.hpp" 
    2022 
    2123#include "global/wtl_app.hpp" 
     
    115117bit_impl::~bit_impl() 
    116118{ 
     119        HAL_DEV_MSG(L"Commence ~BitTorrent_impl");  
     120 
    117121        stop_alert_handler(); 
    118122         
     
    144148                        new hal::EventStdException(event_logger::critical, e, L"~BitTorrent_impl")));  
    145149        } 
     150        catch(...) 
     151        { 
     152                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     153                        new hal::EventGeneral(hal::event_logger::warning,  
     154                                hal::event_logger::unclassified, L"End ~BitTorrent_impl catch all"))); 
     155        } 
     156 
     157        HAL_DEV_MSG(L"~BitTorrent_impl");  
    146158} 
    147159 
     
    373385} 
    374386 
    375  
    376387void bit_impl::start_alert_handler() 
    377388{ 
     
    379390         
    380391        HAL_DEV_MSG(hal::wform(L"start_alert_handler")); 
    381  
    382392 
    383393        boost::function<void (void)> f = bind(&bit_impl::alert_handler, this); 
     
    395405        if (alert_checker_) 
    396406        { 
     407                HAL_DEV_MSG(hal::wform(L"Interrupting alert handler")); 
     408 
    397409                alert_checker_->interrupt(); 
    398410                alert_checker_ = boost::none; 
    399411        } 
     412        else 
     413        { 
     414                HAL_DEV_MSG(hal::wform(L"Alert handler already stopped")); 
     415        } 
    400416} 
    401417         
    402418void bit_impl::alert_handler() 
    403419{ 
     420        win32_exception::install_handler(); 
     421 
     422        try 
     423        { 
     424 
    404425        while (keepChecking_) 
    405426        { 
     
    735756         
    736757        } 
    737 } 
    738  
    739 } 
     758 
     759        } 
     760        catch (const win32_exception& e) { 
     761                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     762                        new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified,  
     763                        (hal::wform(L"Alert handler win32_exception (code %1%) at %2%") % e.code() % 123).str()))); 
     764    } 
     765        catch(std::exception& e) 
     766        { 
     767                // These are logged as debug because they are rarely important to act on! 
     768                event_log.post(shared_ptr<EventDetail>(\ 
     769                        new EventStdException(event_logger::debug, e, L"alertHandler"))); 
     770        } 
     771 
     772        catch(...) 
     773        { 
     774                hal::event_log.post(shared_ptr<hal::EventDetail>( 
     775                        new hal::EventGeneral(hal::event_logger::warning, hal::event_logger::unclassified, L"Alert handler catch all"))); 
     776        } 
     777} 
     778 
     779} 
Note: See TracChangeset for help on using the changeset viewer.