Tkinter/threading issue

Jerrad Genson jerradgenson at gmail.com
Sun Aug 15 22:59:17 CEST 2010


    def check_message(self, spawn=True):
        '''Method for pulling message from server process.'''

        if spawn: self.pid2 = os.fork()
        if self.pid2 == 0:
            if verbose: print('message checker initialized')
            # repeat message check forever
            while True:
                incoming_data = os.read(self.client_receive, 1024)
                if verbose: print('Message receive successful')
                if verbose: print('Message: ' + incoming_data)
                self.update_messages(incoming_data)

    def update_messages(self, new_text=False):
        '''Adds new string to conversation box.
           @param new_text The string to be added.
           '''

        if not new_text: new_text = INCOMING_DATA
        try:
            current_text = self.chat_text.get()
            current_text += '\n' + new_text
            self.chat_text.set(current_text)

        except:
            error_details = 'Fatal Error. Message update failed.
Program will now close.'
            tkMessageBox.showerror('Update Error', error_details)
            error_details += '\nINCOMING_DATA: ' + new_text
            error_details += '\ncurrent_text: ' + current_text
            stack_trace = traceback.format_stack()
            self.error_logger.log_error(stack=stack_trace,
details=error_details)
            self.exit_program(force=True)



More information about the Python-list mailing list