Changeset d21198f for server


Ignore:
Timestamp:
Jan 11, 2012, 3:27:02 PM (12 years ago)
Author:
Jessica B. Hamrick <jhamrick@…>
Branches:
no-cups
Children:
34a4e5d
Parents:
eee389a
git-author:
Jessica B. Hamrick <jhamrick@…> (01/11/12 15:27:02)
git-committer:
Jessica B. Hamrick <jhamrick@…> (01/11/12 15:27:02)
Message:

Fix some threading deadlock bugs

Location:
server/lib/gutenbach/server
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • server/lib/gutenbach/server/__init__.py

    reee389a rd21198f  
    2323
    2424# configure and initialize logging
    25 logging.basicConfig(level=logging.INFO)
     25logging.basicConfig(level=logging.DEBUG)
    2626logger = logging.getLogger(__name__)
    2727
  • server/lib/gutenbach/server/job.py

    reee389a rd21198f  
    138138        self.state = States.PROCESSING
    139139        self.player.callback = self._completed
    140         self.player.run()
     140        self.player.start()
    141141
    142142    def pause(self):
  • server/lib/gutenbach/server/printer.py

    reee389a rd21198f  
    5050       
    5151    def __init__(self, name, *args, **kwargs):
     52
     53        super(GutenbachPrinter, self).__init__(*args, **kwargs)
     54       
     55        self.name = name
     56        self.time_created = int(time.time())
     57
     58        self.finished_jobs = []
     59        self.pending_jobs = []
     60        self.current_job = None
     61        self.jobs = {}
     62
    5263        self.lock = threading.RLock()
    53 
    54         with self.lock:
    55             super(GutenbachPrinter, self).__init__(*args, **kwargs)
    56            
    57             self.name = name
    58             self.time_created = int(time.time())
    59 
    60             self.finished_jobs = []
    61             self.pending_jobs = []
    62             self.current_job = None
    63             self.jobs = {}
    64 
    65             self.running = False
    66             self.paused = False
    67 
    68             # CUPS ignores jobs with id 0, so we have to start at 1
    69             self._next_job_id = 1
     64        self.running = False
     65        self.paused = False
     66
     67        # CUPS ignores jobs with id 0, so we have to start at 1
     68        self._next_job_id = 1
    7069
    7170    def __repr__(self):
     
    132131                    job_id = heapq.heappop(self.pending_jobs)
    133132                    self.current_job = self.get_job(job_id)
     133                    print "before play"
    134134                    self.current_job.play()
     135                    print "after play"
    135136                except IndexError:
    136                     pass
     137                    self.current_job = None
    137138                except InvalidJobStateException:
    138139                    heapq.heappush(self.pending_jobs, self.current_job.id)
    139                 finally:
    140140                    self.current_job = None
    141141                   
Note: See TracChangeset for help on using the changeset viewer.