<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_new_working_set(self):
 """ Get a new list of IPs to work with from the queue. This returns None if there is no update. Read all the messages from the queue on which we get the IP addresses that we have to monitor. We will ignore all of them, except the last one, since maybe we received two updates in a row, but each update is a full state, so only the last one matters. Raises the StopReceived exception if the stop signal ("None") was received on the notification queue. """

        new_list_of_ips = None
        while True:
            try:
                new_list_of_ips = self.q_monitor_ips.get_nowait()
                self.q_monitor_ips.task_done()
                if type(new_list_of_ips) is MonitorPluginStopSignal:
                    raise StopReceived()
            except Queue.Empty:
                # No more messages, all done reading monitor list for now
                break
        if new_list_of_ips is not None:
            CURRENT_STATE.working_set = new_list_of_ips
        return new_list_of_ips