DEL_TIMER_SYNC(9) Driver Basics DEL_TIMER_SYNC(9)NAME
del_timer_sync - deactivate a timer and wait for the handler to finish.
SYNOPSIS
int del_timer_sync(struct timer_list * timer);
ARGUMENTS
timer
the timer to be deactivated
DESCRIPTION
This function only differs from del_timer on SMP: besides deactivating the timer it also makes sure the handler has finished executing on
other CPUs.
SYNCHRONIZATION RULES
Callers must prevent restarting of the timer, otherwise this function is meaningless. It must not be called from interrupt contexts unless
the timer is an irqsafe one. The caller must not hold locks which would prevent completion of the timer's handler. The timer's handler must
not call add_timer_on. Upon exit the timer is not queued and the handler is not running on any CPU.
NOTE
For !irqsafe timers, you must not hold locks that are held in interrupt context while calling this function. Even if the lock has nothing
to do with the timer in question. Here's why:
CPU0 CPU1 ---- ---- <SOFTIRQ> call_timer_fn; base->running_timer = mytimer; spin_lock_irq(somelock); <IRQ> spin_lock(somelock);
del_timer_sync(mytimer); while (base->running_timer == mytimer);
Now del_timer_sync will never return and never release somelock. The interrupt on the other CPU is waiting to grab somelock but it has
interrupted the softirq that CPU0 is waiting to finish.
The function returns whether it has deactivated a pending timer or not.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 DEL_TIMER_SYNC(9)
Check Out this Related Man Page
reltimer(3C)reltimer(3C)NAME
reltimer - relatively arm a per-process timer
SYNOPSIS DESCRIPTION
The function sets the of the specified timer to an offset from the current clock setting.
If specifies a value argument with the member equal to zero, the timer is disabled. updates the it_interval value of the timer to the
value specified. Time values smaller than the resolution of the specified timer are rounded up to its resolution; timer values larger than
the maximum value of the specified timer are rounded down to the maximum value (see mktimer(3C)).
returns in the ovalue parameter a value representing the previous amount of time before the timer would have expired or zero if the timer
was disabled, together with the previous interval timer period. The members of ovalue are subject to the resolution of the timer, and are
the same values that would be returned by a call.
The behavior of this function is undefined if value is NULL.
RETURN VALUE
Upon successful completion, returns zero; otherwise, it returns -1 and sets to indicate the error.
ERRORS
fails if any of the following conditions are encountered:
[EINVAL] does not correspond to an ID returned by or the value structure specified a nanosecond value less than zero or greater
than or equal to 1000 million.
[EIO] An error occurred while accessing the clock device.
FILES SEE ALSO timers(2), gettimer(3C), mktimer(3C), thread_safety(5).
STANDARDS CONFORMANCE reltimer(3C)
Man Page
9 More Discussions You Might Find Interesting
1. Post Here to Contact Site Administrators and Moderators
Neo,
can u please shorten the reply timer to like 1 min or so. It is prolly just me but i end up passing on replying to posts due to i hate waiting for my timer to reset w/ a 2.5 mins wait. (2 Replies)
Hi all,
Wanted to a create a shell script
-----------------------------------------------------------------------
1) which when called will start a timer and wait for 48 hours.
after 48 hours it will call some function(say XYZ)
2) Whenever this shell script is called (can be called... (3 Replies)
Hi,
Can you please help me in implementing a timer based polling for function in C? ie. the function should be called in say 30secs(when 30secs has lapsed).
Thanks (7 Replies)
Hi
I have questions about timer function in multi-threads environment.
My application has multi-threads, in one thread, I set a timer, when the timer expires, the timer function will interrupt other thread and execute.
I am not clear which thread will be interrupted by the timer function ?... (2 Replies)
:eek: I use this Solaris to run CMS a call acounting software package for my job. No one could run reports today because it said the this when you logged on
"The following file systems are low, and could adversely affect server performance:
File system /: 99%full"
Can some one please explain... (9 Replies)
Hi Buddies,
my pc has two CPU, so CPU1 and CPU2.
I have a perl "a.pl", when i "./a.pl", i can see the CPU1 is full or CPU2 is full, mean only one is full, another one is idle.
Wonderring what shall i do in order to let both CPU to process this a.pl.:(
Thanks (1 Reply)
How do you set timer as output to the command line so that you get an output like
Has been waiting for 5 seconds
Has been waiting for 6 seconds
...
Where only the number changes. (2 Replies)