[ 
https://issues.apache.org/jira/browse/THRIFT-2295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13857666#comment-13857666
 ] 

Martin Vogt commented on THRIFT-2295:
-------------------------------------



>> None = 0x01 ...
>>Only for the Bit-test. (x & 0x0 = 0x0).
>I would expect None to be literally "no bits set".

I have change that, including the uppercase MOD to e_mod,
which looks now more like the other enum implementations.

>>most likely the person who implemented oneway didn't know it too
>Not quite, I think. The keyword oneway lets the code generator behave 
>differently: It omits >the whole recv_Xxx() response part.

Yes, signal/slot have a void return and similar behaviour as "oneway".
Another reason is that some blocking must be avoided.

A client can issue a call to a server and gets some return value, like
{quote}
service MyService {
   i32 getRandom();
}
{quote}

If the server then emits a signal during getRandom and the
client is connected to the signal (+tcp stack full) there
is a deadlock.
So I think, the marshalling must be different for signal/slots too.
But this patch only makes the "oneway" implementation more generic.








> Make "oneway" more generic
> --------------------------
>
>                 Key: THRIFT-2295
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2295
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (General)
>    Affects Versions: 0.9.1
>            Reporter: Martin Vogt
>            Priority: Trivial
>         Attachments: functionModifiers131227v1.patch
>
>
> I'm experimenting with different function modifiers 
> ("oneway","signal","slot", etc...)
> The current code does not make such tests easy, because the "oneway"
> modifier is hardcoded  as bool.
> The following patch improves the optional function modifier to be more 
> generic.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to