Search Results

Search found 8982 results on 360 pages for 'delete me'.

Page 54/360 | < Previous Page | 50 51 52 53 54 55 56 57 58 59 60 61  | Next Page >

  • Delete all rows that do not have the value: Criteria 1 or Criteria 2 or Criteria 3 in Column D --> Using VBA Macro for excel

    - by JDS
    I am new to Macro's/VBA and cannot seem to figure out how to do this action for multiple criteria. I am trying to Delete all rows that do not have the value: Identify Fail or Identify Success in Column D. I write the following code and it works for one criteria "Identify Fail": '***********************************************' Sub DeleteRows() 'Action 1 --> Delete all Rows without Identify Fail in column D' Application.ScreenUpdating = False For i = Range("D" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("D" & i).Value <> "Identify Fail" Then Rows(i).Delete shift:=xlUp Next i Application.ScreenUpdating = True End Sub '***********************************************' Once I try to add 'OR' with another criteria it does not work: '***********************************************' Sub DeleteRows() 'Action 1 --> Delete all Rows without Identify Fail in column D' Application.ScreenUpdating = False For i = Range("D" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("D" & i).Value <> "Identify Fail" Or "Identify Success" Then Rows(i).Deleteshift:=xlUp Next i Application.ScreenUpdating = True End Sub '***********************************************' Any suggestions would be appreciated as I have been scouring this website and have not found an efficient code that will do the trick.

    Read the article

  • Should nested attributes be automatically deleted when I delete the parent record?

    - by brad
    I'm playing around with nested forms in attributes and have a model Invoice that has_many invoice_phone_numbers. I have the following line in my invoice.rb model file accepts_nested_attributes_for :invoice_phone_numbers, :allow_destroy => true, :reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } } This does what it should and I can delete invoice_phone_numbers from the form by selecting their 'delete' checkbox. But when I delete an Invoice, I have noticed that the nested invoice_phone_numbers are not also deleted. This causes problems as rails seems to reuse id numbers in the Invoice model (Should it? Does this depend on the database? I'm using SQLite3) so phone numbers from previous invoices turn up in new invoices after they have been created. Anyway, my question is should the nested attributes be deleted when I delete the parent attribute? Is there a way to make this happen automatically as part of the nesting process or do I need to deal with this in my invoice model? If so, what is the best way to do this? I would try to go about this with a before_destroy callback but want to know if this is the best way to do this. Anyway, thanks.

    Read the article

  • ClearMyTracksByProcess - all options?

    - by Jonny Blaze
    I've seen the list of values floating around the internet for ClearMyTracksByProcess Delete Temporary Internet Files: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 Delete Cookies: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 Delete History: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 Delete Form Data: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 Delete Passwords: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32 Delete All: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 Delete All + files and settings stored by Add-ons: RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351 But it's not a complete list of all the options, and I can't seem to find a complete list (whether there isn't one published, or this one has been republished too many times and is hogging all the search results, I'm not sure). What I'm looking to do is delete Cookies + Temp + Add-ons, but preserve History, Form data, and Passwords. Has anybody found a complete list of all the available options? Or just the option for Add-ons so I can do the math myself? (e.g. Add-ons value + 8 + 2 = the answer I'm looking for) Thanks for looking at my question!

    Read the article

  • How to delete/detect what terminal software I have?

    - by Mike G
    On mac osx terminal, I installed many terminal programs while trying to install a programming library. Now I'm wondering how I delete them. I think some of them include pip, macports, vmenven (or something). I'm not sure what these programs are called but they all are called from the command line using something like "macports..." (so I'm calling them terminal programs). First, how do I tell what terminal programs are installed. Second, how do I delete them. And, to be through, where are the programs stored anyway?

    Read the article

  • Spamassassin: How to delete all spam messages on the server?

    - by Beck
    Can't find out, how to configure spamassassin to delete all spam messages. Currenly it's only mark messages as spam, but pass them throught IMAP to client. How to block them from passing through to IMAP clients? http://spamassassin.apache.org/full/3.3.x/doc/Mail_SpamAssassin_Conf.html And it's blocking some of our notification messages... -1.4 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 HTML_MESSAGE BODY: HTML included in message 2.4 HTML_IMAGE_ONLY_08 BODY: HTML: images with 400-800 bytes of words 2.9 TVD_SPACE_RATIO BODY: TVD_SPACE_RATIO 1.7 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 1.1 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag 1.1 HTML_SHORT_LINK_IMG_1 HTML is very short with a linked image -1.4 AWL AWL: From: address is in the auto white-list This is what clients getting on their mails in place of our notification messages. Any idea how to pass those messages through and how to delete incoming spam? Thanks ;) I have this setup: postfix spamassassin clamav-daemon amavis

    Read the article

  • How to give a Linux user permission to create backups, but not permission to delete them?

    - by ChocoDeveloper
    I want to set up automated backups that are kept safe from myself (in case a virus pwns me). The problem is the "create" and "delete" permissions are the same thing: write permission. So what can I do about it? Is it possible to decouple the create/delete permissions? Another option could be to let the user "root" make the backups. The problem is my home directory is encrypted, and I don't want to backup everything. Any ideas? For the backups I'm using Deja Dup, which is installed by default in Fedora and Ubuntu.

    Read the article

  • How to Delete File stderr1 on a SAP System?

    - by Techboy
    I have a file called stderr1 in the work directory of several of the SAP servers in my production cluster. It has grown to around 19GB's to fill the hard disk on each server. I have deleted all trace files and WP files from within transaction SM50 but that hasn't deleted it (or re-named it to .old). If I try to rename or delete it manually, it says I can't because the file is in use. Please can you tell me how I can delete or shrink the stderr1 file?

    Read the article

  • Massive amount of subfolders and long subfolders. ¿How can I delete all of them?

    - by Carlos
    Good day. We have a little problem here. We have a share with the backup of all the server's offices, Its a really big share with more than 8.000.000 files. Our users usually give long names to the folders they create, and then make subfolders (long too) and more subfolders... and more suboflders.... We have a new share with more capacity, and with a simpe robocopy bat we copied all the files and folders (some give problems, but we manually copied them) But the problem is deleting them. del command didnt work well when so long paths, neirder rmdir... I'm tried some commanders, but no luck. Can u recommend me any tool that can delete recursively or able to delete 255+ paths? Edited: The SO on background of the share it's NetApp OS. But I can access it from Windows Servers. 2000 and 2003 Thanks.

    Read the article

  • How do I delete an Outlook calendar entry (after the meeting is over) without notifying the creator

    - by JabberwockyDecompiler
    I have several meetings during the day and I like to be able to open my calendar and see what is left at a glance so I delete the meetings that I have already completed. If I do this close enough to the meeting time I am asked if I want to notify the creator. If I do this after the meeting has started Outlook automatically sends a notice to the creator that I have declined the meeting. I am only deleting the one instance so it is still in my calendar for the next time, however that creates an email that others must read/delete. I need to be able to remove single occurrences of meetings without automatically sending a notice that I am deleting the entry. NOTE: I am using Outlook 2007, I did not see anything in the Advanced Email Options. NOTE 2: I have seen this happen with Lotus notes as well (Like anyone actually uses that). NOTE 3: There is not a sent message created, only the creator of the calendar event will see the message.

    Read the article

  • How does one delete a directory filled with files and other subdirectory permanently, bypassing the trash, from the command line in OS X?

    - by Jon
    So my command line skills are a little rusty and I'm having trouble remembering the differences between the meanings of flags in different distro's os's. I also don't really remember all my technical lingo so manpages seem really unclear. Basically I'm on Mac OS X and want to delete a directory along with all of its contents. What I'm mainly concerned about, I suppose, is that it'll delete literally ALL of the references within the directory, including ../ and ../<everything else, including ../'s own ../> and then just totally screw up my entire system. Which of these do I want to run? $ rm -R dir-name/ or $ rm -r

    Read the article

  • How to list all 2nd level subfolders and delete un-required ones?

    - by AllSolutions
    I provide support to a lot of clients. I have created a folder for each client, and under each client folder, I create a folder for the date on which the issue was reported. Now due to growing data, I want to delete all issues for all clients which are before a cut off date. The problem is while creating the date folder, I have not always followed a specific convention, some are creating using dd-MM-yyyy, some are using dd.MM.yyyy, etc. Is there a quick way I can list all such date subfolders, and then choose which ones I do not want, and delete them? I am using Windows XP SP 2 32 bit. Thanks.

    Read the article

  • How to access MySQL when I delete the root user on openSUSE 11?

    - by Negin Nicki
    Unfortunately I deleted MySQL users with the command delete from mysql.user and now I can't access MySQL. I tried looking at MySQL - ERROR 1045 - Access denied, but it is not proper for me because I don't have any user for MySQL. I uninstalled and reinstalled MySQL but I can't access MySQL. What should I do? I wanted to have phpMyAdmin without login and I ruined the whole thing. After uninstalling and having no result, I tried to delete the directories of MySQL and again installing them but again no result and now I have this error: Error 2002:can't connect to local mysql server through socket /var/lib/mysql/mysql.sock I don't have any user to reset the password of, but if I have by reinstalling which I don't know how to connect to MySQL. I tried MySQL -u root I tried MySQL I tried mysqld-safe and etc in the link

    Read the article

  • How to delete "System Volume Information" folder from external drives?

    - by Nadude
    I'm running Vista Prof 32bit on a lenovo w500 thinkpad. I have four external drives and use 4 different PCs, that all have system volume information folders, taking up lots of space, and I can't delete them. I don't even know which computer's files are backed up on which external. I've used Thinkvantage rescue and recovery to delete all backups, as well as checked system restore settings to only use my main C drive. I checked all the PC's to ensure only the Main drive keeps system restore points and deleted previous versions. I ran Disc Clean up too. But I can't figure out how to get rid of these large folders from my external drives.

    Read the article

  • Can I delete the OEM partition on the new Dell XPS 15?

    - by timepilot
    My new Dell XPS 15 L521X just arrived. I need to set this up to dual boot Linux. Sadly, the system comes with four primary partitions. I can't do a clean install at the moment, so one of the partitions will have to be deleted before I can install Linux. The layout is as follows: OEM: 39mb Hibernation: 8gb OS: 457gb Recovery: 12gb Obviously, I can't delete the Hibernation and OS partitions (will shrink to make space for Linux) and I'd like to keep the recovery partition if possible. So my question is what is on the small OEM partition? What functionality will I lose if I delete it?

    Read the article

  • Accessing Python module fails although its package is imported

    - by codethief
    Hey Stackers! :) My Django project's directory hierarchy looks like this: + pybsd |---+ devices |---+ templates |---+ views |---+ interaction |---- __init__.py |---- geraete.py |---- geraetemodelle.py |---- geraetegruppen.py |---- __init__.py |---- ajax.py |---- html.py |---- misc.py |---- __init__.py |---- urls.py |---- __init__.py |---- urls.py (Please excuse the German names. I preferred not to replace them here since it would add yet another possible error source when trying out the solutions you'll hopefully suggest and answering your questions.) Every request to http://URL/devices/.* is dispatched to the urls.py file living in /devices: # ... from views import html, ajax, misc, interaction urlpatterns = patterns('', # ... (r'^ajax/update/(?P<table>[a-z_]+)$', ajax.update), (r'^ajax/delete/(?P<table>[a-z_]+)$', ajax.delete), (r'^ajax/select_options/(?P<table>[a-z_]+)$', ajax.select_options), (r'^interaction/geraete/info/(?P<geraet>\d+)$', interaction.geraete.info), (r'^interaction/geraete/delete/(?P<geraet>\d+)?$', interaction.geraete.delete), (r'^interaction/geraetemodelle/delete/(?P<geraetemodell>\d+)?$', interaction.geraetemodelle.delete), (r'^interaction/geraetegruppen/delete/(?P<geraetegruppe>\d+)?$', interaction.geraetegruppen.delete), # ... ) All URL definitions work except for those referencing the interaction package. I'm constantly getting the following error: File "/home/simon/projekte/pybsd/../pybsd/devices/urls.py", line 33, in `<module>` (r'^interaction/geraete/info/(?P<geraet>\d+)$', interaction.geraete.info), AttributeError: 'module' object has no attribute 'geraete' I double-checked that the __init__.py files don't contain anything. Maybe you've already found the (Python- or Django-related?) mistake I made and am apparently unable to see. If not, read on. In any case, thanks for reading this long post! Isolating the problem 1st test It works if I provide the view functions as strings: (r'^interaction/geraete/info/(?P<geraet>\d+)$', 'devices.views.interaction.geraete.info'), (r'^interaction/geraete/delete/(?P<geraet>\d+)?$', 'devices.views.interaction.geraete.delete'), (r'^interaction/geraetemodelle/delete/(?P<geraetemodell>\d+)?$', 'devices.views.interaction.geraetemodelle.delete'), (r'^interaction/geraetegruppen/delete/(?P<geraetegruppe>\d+)?$', 'devices.views.interaction.geraetegruppen.delete'), ... or add yet another line to the imports: from views.interaction import geraete, geraetemodelle, geraetegruppen Using from views.interaction import *, however, doesn't work either and results in the same error message. 2nd test I created a file test.py in /devices: from views import interaction print dir(interaction) Output: simon@bsd-simon:~/projekte/pybsd/devices$ python test.py ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__'] Again, no sign of the modules I created in the interaction package (geraete.py, geraetemodelle.py, geraetegruppen.py). Unlike in urls.py, trying from view.interaction import geraete, geraetegruppen, geraetemodelle in test.py results in ImportError: No module named view.interaction this time. 3rd test I started the Django shell: $ python manage.py shell >>> import devices.views.interaction.geraete >>> dir(devices.views.interaction.geraete) ['Abteilung', 'Auftrag', 'Auftragsvorlage', 'Geraet', 'Geraetegruppe', 'Geraetemodell', 'HttpResponse', 'HttpResponseBadRequest', 'HttpResponseRedirect', 'Raum', 'Standort', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'delete', 'info', 'models', 'move', 'render_to_response'] >>> $ python manage.py shell >>> from devices.views.interaction import geraete >>> dir(geraete) ['Abteilung', 'Auftrag', 'Auftragsvorlage', 'Geraet', 'Geraetegruppe', 'Geraetemodell', 'HttpResponse', 'HttpResponseBadRequest', 'HttpResponseRedirect', 'Raum', 'Standort', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'delete', 'info', 'models', 'move', 'render_to_response'] >>> $ python manage.py shell >>> import devices.views.interaction >>> devices.views.interaction.geraete Traceback (most recent call last): File "<console>", line 1, in <module> AttributeError: 'module' object has no attribute 'geraete' >>> dir(devices.views.interaction) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']

    Read the article

  • Deleting a row from self-referencing table

    - by Jake Rutherford
    Came across this the other day and thought “this would be a great interview question!” I’d created a table with a self-referencing foreign key. The application was calling a stored procedure I’d created to delete a row which caused but of course…a foreign key exception. You may say “why not just use a the cascade delete option?” Good question, easy answer. With a typical foreign key relationship between different tables which would work. However, even SQL Server cannot do a cascade delete of a row on a table with self-referencing foreign key. So, what do you do?…… In my case I re-wrote the stored procedure to take advantage of recursion:   -- recursively deletes a Foo ALTER PROCEDURE [dbo].[usp_DeleteFoo]      @ID int     ,@Debug bit = 0    AS     SET NOCOUNT ON;     BEGIN TRANSACTION     BEGIN TRY         DECLARE @ChildFoos TABLE         (             ID int         )                 DECLARE @ChildFooID int                        INSERT INTO @ChildFoos         SELECT ID FROM Foo WHERE ParentFooID = @ID                 WHILE EXISTS (SELECT ID FROM @ChildFoos)         BEGIN             SELECT TOP 1                 @ChildFooID = ID             FROM                 @ChildFoos                             DELETE FROM @ChildFoos WHERE ID = @ChildFooID                         EXEC usp_DeleteFoo @ChildFooID         END                                    DELETE FROM dbo.[Foo]         WHERE [ID] = @ID                 IF @Debug = 1 PRINT 'DEBUG:usp_DeleteFoo, deleted - ID: ' + CONVERT(VARCHAR, @ID)         COMMIT TRANSACTION     END TRY     BEGIN CATCH         ROLLBACK TRANSACTION         DECLARE @ErrorMessage VARCHAR(4000), @ErrorSeverity INT, @ErrorState INT         SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE()         IF @ErrorState <= 0 SET @ErrorState = 1         INSERT INTO ErrorLog(ErrorNumber,ErrorSeverity,ErrorState,ErrorProcedure,ErrorLine,ErrorMessage)         VALUES(ERROR_NUMBER(), @ErrorSeverity, @ErrorState, ERROR_PROCEDURE(), ERROR_LINE(), @ErrorMessage)         RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)     END CATCH   This procedure will first determine any rows which have the row we wish to delete as it’s parent. It then simply iterates each child row calling the procedure recursively in order to delete all ancestors before eventually deleting the row we wish to delete.

    Read the article

  • Accessing native iPhone addressbook database and performing add and delete contacts?

    - by chaitanya
    Hi, In my application I need to implement the address book which should contains the native addressbook details, and the user should be able to add and delete from the address book and it should be updated in the native iphone addressbook. I read somewhere that the iphone native address book database is accesible. In documentation also I saw that addContact and Delete API's are exposed to addressbook. Can anyone please tell me how can I access the native AddressBook of the iphone, and.. how to add and delete contacts from the address book? Can anyone post the sample code for this?

    Read the article

  • where to enlist transaction with parent child delete (repository or bll)?

    - by Caroline Showden
    My app uses a business layer which calls a repository which uses linq to sql. I have an Item class that has an enum type property and an ItemDetail property. I need to implement a delete method that: (1) always delete the Item (2) if the item.type is XYZ and the ItemDetail is not null, delete the ItemDetail as well. My question is where should this logic be housed? If I have it in my business logic which I would prefer, this involves two separate repository calls, each of which uses a separate datacontext. I would have to wrap both calls is a System.Transaction which (in sql 2005) get promoted to a distributed transaction which is not ideal. I can move it all to a single repository call and the transaction will be handled implicitly by the datacontext but feel that this is really business logic so does not belong in the repository. Thoughts? Carrie

    Read the article

  • Is it more efficient to always run a delete query, or to check if that information exists first

    - by Scarface
    Ok this is going to seem like a dumb question to experienced developers, but questions like this bother me until I ask them. So... is it more efficient to always run a delete query by default whether an entry exists or not, for example to delete a user name after a certain period of time (DELETE * from table where username=user), or should you check if that entry exists first using a select query and mysql_num_rows. What uses more processor on the server side? Obviously one approach contains more code, but I was wondering if certain mysql operations used a lot more cpu than others.

    Read the article

  • In vim is there a way to delete without putting text in the register?

    - by Edward Tanguay
    Using vim I often want to replace a block of code with a block that I just yanked. But when I delete the block of code that is to be replaced, that block itself goes into the register which erases the block I just yanked. So I've got in the habit of yanking, then inserting, then deleting what I didn't want, but with large blocks of code this gets messy trying to keep the inserted block and the block to delete separate. So what is the slickest and quickest way to replace text in vim? is there a way to delete text without putting it into the register? is there a way to say e.g. "replace next word" or "replace up to next paragraph" or is the best way to somehow use the multi-register feature?

    Read the article

  • In ASP.NET, Can I Delete a row in GridView while the primary key of that table is not loaded into the gridview?

    - by Reddy S R
    Hi, I have a table with primary key whose importance is technically high and none business wise. So, when I display the table data to user, I would like not to show him the primary key. Even if I load it in sqldatasource and dont show (I did this by removing the cloumn in "Columns" tag of GridView), I am not able to update or delete row using the built-in UpdateCommand & DeleteCommand. I have created the delete paramters but it does nothing when I hit the delete button. How to get around it? Thanks R S Reddy

    Read the article

  • How can I check the version of an assembly then delete the assembly?

    - by Nescio
    I am using the FileVersionInfo to retrieve the version of a .Net assembly. Then, I want to immediately delete the file. Unfortunately after I call GetVersionInfo, any attempt to delete the file results in an error “…in use by another process…” Is there another technique to determine the version that does not lock the file? Or, is it possible to ensure the lock is released after calling GetVersionInfo? The below example is heavily simplified, but scope matches my real code. void Main() { var fvi = GetVersion("myPath"); if (fvi.ToString() == "2.0.0.7") DeleteFile("myPath"); } FileVersionInfo GetVersion(string path) { return FileVersionInfo.GetVersionInfo(path); } void DeleteFile(string path) { File.Delete(path); }

    Read the article

  • how I delete a row in a table in Joomla?

    - by Sara
    I have a table id h_id t_id 1 3 1 2 3 2 3 3 3 4 4 2 5 4 3 id is the primary key. I have not created a JTable for this table. Now I want to delete rows by h_id. Are there any method like which I can use without writing a sql DELETE query? $db = JFactory::getDBO(); $row =& $this->getTable('tablename'); $row->delete($pk); Any better solution will be greatly appreciated.

    Read the article

  • How should I delete a child object from within a parent's slot? Possibly boost::asio specific.

    - by kaliatech
    I have written a network server class that maintains a std::set of network clients. The network clients emit a signal to the network server on disconnect (via boost::bind). When a network client disconnects, the client instance needs to be removed from the Set and eventually deleted. I would think this is a common pattern, but I am having problems that might, or might not, be specific to ASIO. I've tried to trim down to just the relevant code: /** NetworkServer.hpp **/ class NetworkServices : private boost::noncopyable { public: NetworkServices(void); ~NetworkServices(void); private: void run(); void onNetworkClientEvent(NetworkClientEvent&); private: std::set<boost::shared_ptr<const NetworkClient>> clients; }; /** NetworkClient.cpp **/ void NetworkServices::run() { running = true; boost::asio::io_service::work work(io_service); //keeps service running even if no operations // This creates just one thread for the boost::asio async network services boost::thread iot(boost::bind(&NetworkServices::run_io_service, this)); while (running) { boost::system::error_code err; try { tcp::socket* socket = new tcp::socket(io_service); acceptor->accept(*socket, err); if (!err) { NetworkClient* networkClient = new NetworkClient(io_service, boost::shared_ptr<tcp::socket>(socket)); networkClient->networkClientEventSignal.connect(boost::bind(&NetworkServices::onNetworkClientEvent, this, _1)); clients.insert(boost::shared_ptr<NetworkClient>(networkClient)); networkClient->init(); //kicks off 1st asynch_read call } } // etc... } } void NetworkServices::onNetworkClientEvent(NetworkClientEvent& evt) { switch(evt.getType()) { case NetworkClientEvent::CLIENT_ERROR : { boost::shared_ptr<const NetworkClient> clientPtr = evt.getClient().getSharedPtr(); // ------ THIS IS THE MAGIC LINE ----- // If I keep this, the io_service hangs. If I comment it out, // everything works fine (but I never delete the disconnected NetworkClient). // If actually deleted the client here I might expect problems because it is the caller // of this method via boost::signal and bind. However, The clientPtr is a shared ptr, and a // reference is being kept in the client itself while signaling, so // I would the object is not going to be deleted from the heap here. That seems to be the case. // Never-the-less, this line makes all the difference, most likely because it controls whether or not the NetworkClient ever gets deleted. clients.erase(clientPtr); //I should probably put this socket clean-up in NetworkClient destructor. Regardless by doing this, // I would expect the ASIO socket stuff to be adequately cleaned-up after this. tcp::socket& socket = clientPtr->getSocket(); try { socket.shutdown(boost::asio::socket_base::shutdown_both); socket.close(); } catch(...) { CommServerContext::error("Error while shutting down and closing socket."); } break; } default : { break; } } } /** NetworkClient.hpp **/ class NetworkClient : public boost::enable_shared_from_this<NetworkClient>, Client { NetworkClient(boost::asio::io_service& io_service, boost::shared_ptr<tcp::socket> socket); virtual ~NetworkClient(void); inline boost::shared_ptr<const NetworkClient> getSharedPtr() const { return shared_from_this(); }; boost::signal <void (NetworkClientEvent&)> networkClientEventSignal; void onAsyncReadHeader(const boost::system::error_code& error, size_t bytes_transferred); }; /** NetworkClient.cpp - onAsyncReadHeader method called from io_service.run() thread as result of an async_read operation. Error condition usually result of an unexpected client disconnect.**/ void NetworkClient::onAsyncReadHeader( const boost::system::error_code& error, size_t bytes_transferred) { if (error) { //Make sure this instance doesn't get deleted from parent/slot deferencing //Alternatively, somehow schedule for future delete? boost::shared_ptr<const NetworkClient> clientPtr = getSharedPtr(); //Signal to service that this client is disconnecting NetworkClientEvent evt(*this, NetworkClientEvent::CLIENT_ERROR); networkClientEventSignal(evt); networkClientEventSignal.disconnect_all_slots(); return; } I believe it's not safe to delete the client from within the slot handler because the function return would be ... undefined? (Interestingly, it doesn't seem to blow up on me though.) So I've used boost:shared_ptr along with shared_from_this to make sure the client doesn't get deleted until all slots have been signaled. It doesn't seem to really matter though. I believe this question is not specific to ASIO, but the problem manifests in a peculiar way when using ASIO. I have one thread executing io_service.run(). All ASIO read/write operations are performed asynchronously. Everything works fine with multiple clients connecting/disconnecting UNLESS I delete my client object from the Set per the code above. If I delete my client object, the io_service seemingly deadlocks internally and no further asynchronous operations are performed unless I start another thread. I have try/catches around the io_service.run() call and have not been able to detect any errors. Questions: Are there best practices for deleting child objects, that are also signal emitters, from within parent slots? Any ideas as to why the io_service is hanging when I delete my network client object?

    Read the article

< Previous Page | 50 51 52 53 54 55 56 57 58 59 60 61  | Next Page >