Exit all threads and disconnect the drone.

        This method has no effect if the drone is closed already or not
        connected yet.

def close(self):
        '''
        Exit all threads and disconnect the drone.

        This method has no effect if the drone is closed already or not
        connected yet.
        '''
        if not self.connected:
            return
        if self.closed:
            return
        self.closed = True
        self._close()