Bug 408257 - [api] Signal framework does not support signal numbers beyond 32 (e.g real-time signals)
Summary: [api] Signal framework does not support signal numbers beyond 32 (e.g real-ti...
Status: RESOLVED FIXED
Alias: None
Product: TCF
Classification: Tools
Component: Agent (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 1.1   Edit
Assignee: Eugene Tarassov CLA
QA Contact: Eugene Tarassov CLA
URL:
Whiteboard:
Keywords: api
Depends on:
Blocks:
 
Reported: 2013-05-16 11:21 EDT by Renan Le Padellec CLA
Modified: 2013-06-05 13:00 EDT (History)
1 user (show)

See Also:


Attachments
Patch proposal (3.32 KB, patch)
2013-05-16 11:31 EDT, Renan Le Padellec CLA
eugene: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Renan Le Padellec CLA 2013-05-16 11:21:53 EDT
There are few places in the TCF Agent code that uses 32 as the maximum numbers of signals. This hard-coded limitation must be removed to support real-time signals.
Comment 1 Renan Le Padellec CLA 2013-05-16 11:31:48 EDT
Created attachment 231094 [details]
Patch proposal
Comment 2 Eugene Tarassov CLA 2013-05-17 14:25:36 EDT
Yes, the agent has limit of 32 signals, and this needs to be fixed.

There are some issues with the patch:

1. The patch does not address the root cause of 32 signals limit: integer type is used throughout the code to represent collections of signals as bitsets.

2. Designated initializers is feature of C99, which is not available in C89 and C++. We cannot use the feature, the code must be buildable with C89 and C++ compilers.

I'm considering changing the code to use some generic signal set implementation instead of int bitset. Without such changes, it is not possible to support more than 32 signals.
Comment 3 Eugene Tarassov CLA 2013-05-21 12:49:54 EDT
I have added code to support unlimited number signals.
The changes are not 100% backward compatible,
so new code can be disabled with ENABLE_UnlimitedSignals=0.
Fixed.
Thanks!