3
¤”ÃZV  ã               @   s.   d dl Z d dlmZ d dlT G dd„ dƒZdS )é    N)ÚGLib)Ú*c               @   s>   e Zd Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ ZdS )Ú	KillTimeré   Nc             C   s(   || _ || _d| _| jƒ  tjƒ | _d S )Nr   )Ú_timeoutÚ	_killfuncÚ_holdsÚ_add_timeoutÚ	threadingZLockÚ_lock)ÚselfZtimeoutZkillfunc© r   ú-/usr/share/system-config-printer/killtimer.pyÚ__init__   s
    zKillTimer.__init__c             C   s   t j| j| jƒ| _d S )N)r   Ztimeout_add_secondsr   Ú_killÚ_timer)r   r   r   r   r	   %   s    zKillTimer._add_timeoutc             C   s,   t d| j ƒ | jr| jƒ  n
tjdƒ d S )NzTimeout (%ds), exitingr   )Ú
debugprintr   r   ÚsysÚexit)r   r   r   r   r   (   s    
zKillTimer._killc             C   sD   | j jƒ  | jdkr(tdƒ tj| jƒ |  jd7  _| j jƒ  d S )Nr   zKill timer stoppedé   )r   Úacquirer   r   r   Úsource_remover   Úrelease)r   r   r   r   Úadd_hold/   s    

zKillTimer.add_holdc             C   sJ   | j jƒ  | jdkr<|  jd8  _| jdkr<tdƒ | jƒ  | j jƒ  d S )Nr   r   zKill timer started)r   r   r   r   r	   r   )r   r   r   r   Úremove_hold8   s    


zKillTimer.remove_holdc             C   s6   | j jƒ  | jdkr(tj| jƒ | jƒ  | j jƒ  d S )Nr   )r   r   r   r   r   r   r	   r   )r   r   r   r   ÚaliveA   s
    

zKillTimer.alive)r   N)	Ú__name__Ú
__module__Ú__qualname__r   r	   r   r   r   r   r   r   r   r   r      s   
		r   )r
   Zgi.repositoryr   Údebugr   r   r   r   r   Ú<module>   s   