IP Library Granted Patent US 8,881,169
Granted Patent B2
US 8,881,169 · App. 12/532,017 · Granted Nov 4, 2014

Information processing apparatus for monitoring event delivery from plurality of monitoring threads

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,881,169
App. No.
12/532,017
Granted
Nov 4, 2014
Kind
B2
Abstract

In a cellular phone applicable to an information processing apparatus according to the present invention, a CPU of a main control unit executes monitor threads 1 to 3 , monitors groups including a plurality of threads set with priority by executing a keep-alive operation to a plurality of monitor threads that monitor operations of threads in the groups, determines whether there is a monitor thread without a response to the keep-alive operation based on responses from the plurality of monitor threads, and terminates delivery of events to the groups with priority higher than the group monitored by the monitor thread without a response to the keep-alive operation if it is determined that there is a monitor thread without a response to the keep-alive operation.

Claims (33)

1. A processor for an information processing apparatus, the processor comprising:

a monitoring unit configured to execute a keep-alive operation on a plurality of monitor threads to monitor a plurality of groups of threads respectively when an event delivery control thread is executed in parallel with execution of the keep-alive operation, to receive a response to the keep-alive operation from each of the plurality of monitor threads, the plurality of monitor threads and the plurality of groups of threads having mutually different priority levels, each of the plurality of monitor threads configured to monitor threads included in a corresponding one of the plurality of groups for the monitor thread;

a first determining unit configured to determine whether there is a no-response monitor thread which does not respond to the keep-alive operation, among the plurality of monitor threads, based on respective responses from the plurality of monitor threads;

a first terminating unit configured to terminate delivery of events to a group of threads having a priority level next higher than a priority level of a group of threads monitored by the no-response monitor thread if the first determining unit determines that there is the no-response monitor thread;

a second determining unit configured to determine, through the monitoring by the monitoring unit after the termination of the delivery of events by the first terminating unit, whether operations of the threads of the group corresponding to the no-response monitor thread are recovered; and

a second terminating unit configured to terminate the delivery of events to the threads of the group corresponding to the no-response monitor thread if the second determining unit determines that the operations of the threads of the group are not recovered,

wherein the plurality of monitor threads is provided to monitor operations of the threads included in the plurality of groups respectively without adding any process to the threads included in the plurality of groups,

wherein the event delivery control thread is configured to monitor only the plurality of monitor threads without monitoring the plurality of groups of threads, and

wherein each of the plurality of monitor threads is configured to return a response to keep-alive operation to the event delivery control thread.

2. The processor according to claim 1 , further comprising

a removing unit configured to remove the termination of the delivery of events by the first terminating unit if the second determining unit determines that the operations of the threads of the group are recovered.

3. The processor according to claim 1 ,

wherein the first determining unit is configured to determine, for a period of a predetermined time after the termination of the delivery of events by the second terminating unit, whether there is the no-response monitor thread which does not respond to the keep-alive operation, among the plurality of monitor threads, and

wherein the second terminating unit is configured to continue the termination of the delivery of events to the threads of the group corresponding to the no-response monitor thread if the first determining unit determines that there is the no-response monitor thread.

4. The processor according to claim 1 , wherein

each of the groups includes at least an event delivery control target thread and an event delivery control non-target thread.

5. The processor according to claim 1 , wherein

an event related to keep-alive is stored at the top of an event queue of the monitor threads during the keep-alive operation.

6. The processor according to claim 1 , wherein the first terminating unit is configured to repeat the termination of the delivery of events until the first determining unit determines that all the responses are received from the plurality of monitor threads and the no-response monitor thread no longer exists, and after it is determined that all the responses are received from the plurality of monitor threads and the no-response monitor thread no longer exists, the termination of the delivery of events by the first terminating unit is removed.

7. A processor for an information processing apparatus, the processor comprising:

a monitoring unit configured to execute a keep-alive operation on a plurality of monitor threads to monitor a plurality of groups of threads respectively when an event delivery control thread is executed in parallel with execution of the keep-alive operation, to receive a response to the keep-alive operation from each of the plurality of the monitor threads, the plurality of monitor threads and the plurality of groups of threads having mutually different priority levels, each of the plurality of monitor threads configured to monitor threads configured to monitor threads included in a corresponding one of the plurality of groups for the monitor thread;

a first determining unit configured to determine whether there is a no-response monitor thread which does not respond to the keep-alive operation, among the plurality of monitor threads, based on respective responses from the plurality of monitor threads; and

a priority changing unit configured to change a priority level of at least one of threads included in a group of threads having a priority level next higher than a priority level of a group of threads monitored by the no-response monitor thread if the first determining unit determines that there is the no-response monitor thread,

wherein the plurality of monitor threads is provided to monitor operations of the threads included in the plurality of groups respectively without adding any process to the threads included in the plurality of groups,

wherein the event delivery control thread is configured to monitor only the plurality of monitor threads without monitoring the plurality of groups of threads,

wherein each of the plurality of monitor threads is configured to return a response to the keep-alive operation to the event delivery control thread; and

wherein the priority changing unit is configured to change the priority level of the at least one of the threads included in the group of threads monitored by the no-response monitor thread or the priority level of the at least one of the threads included in the groups of threads monitored by the monitor threads having the higher priority levels to a priority level lower than the priority level of the no-response monitor thread.

8. The processor according to claim 7 , further comprising

a second determining unit configured to determine, through the monitoring by the monitoring unit after the changing of the priority level by the priority changing unit, whether the operations of the threads of the group corresponding to the no-response monitor thread are recovered, and

the priority changing unit is configured to restore the changed priority level of the at least one of the threads to an original priority level if the second determining unit determines that the operations of the threads of the group are recovered.

9. The processor according to claim 7 , wherein

the priority changing unit is configured to restore the changed priority level of the at least one of the threads to an original priority level after a predetermined time has passed from a start of operation control of the at least one of the threads in which the priority level of the at least one of the threads in changed by the priority changing unit.

10. The processor according to claim 7 , wherein the priority changing unit is configured to maintain the changed priority level of the at least one of the threads until the first determining unit determines that all the responses are received from the plurality of monitor threads and the no-response monitor thread no longer exists, and after it is determined that all the responses are received from the plurality of monitor threads and the no-response monitor thread no longer exists, the changed priority level of the at least one of the threads of the group is restored to an the original priority level.

Assignments (2)
CHANGE OF NAME Recorded Jan 16, 2013
From: FUJITSU TOSHIBA MOBILE COMMUNICATIONS LIMITED
To: FUJITSU MOBILE COMMUNICATIONS LIMITED
Reel/Frame 029645/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2011
From: KABUSHIKI KAISHA TOSHIBA
To: FUJITSU TOSHIBA MOBILE COMMUNICATIONS LIMITED
Reel/Frame 026013/0832 →