Project

General

Profile

Bug #987

Entry methods with no parameters can't be called with CkEntryOptions, can't take group construction dependence.

Added by Phil Miller over 3 years ago. Updated about 2 years ago.

Status:
Merged
Priority:
Normal
Assignee:
Category:
Charmxi
Target version:
Start date:
02/18/2016
Due date:
% Done:

100%

Spent time:

Description

Most entry method declarations lead to generated methods on the corresponding CProxy object that include an optional const CkEntryOptions *opts = NULL as the last parameter. However, entry methods taking no arguments generate a proxy with a corresponding method that takes no arguments either.

It's clear why it's implemented this way - the code on both send and receive sides would have to be duplicated to choose between working with a zero-payload system message and a dynamically allocated message with room for a priority or whatever else the options might dictate. Nevertheless, it's a somewhat glaring and surprising inconsistency that some entry methods can be passed options, and others can't.


Related issues

Copied to Charm++ - Bug #1519: Entry methods with no parameters ignore priority from CkEntryOptions Merged 02/18/2016

History

#1 Updated by Eric Bohm over 3 years ago

  • Assignee set to Ralf Gunter CorrĂȘa Carvalho

#2 Updated by Phil Miller about 3 years ago

  • Category set to Charmxi

#3 Updated by Phil Miller almost 3 years ago

  • Assignee deleted (Ralf Gunter CorrĂȘa Carvalho)

#4 Updated by Eric Bohm almost 3 years ago

  • Assignee set to Nitin Bhat

#5 Updated by Nitin Bhat almost 3 years ago

  • % Done changed from 0 to 20
  • Status changed from New to In Progress

Fix: https://charm.cs.illinois.edu/gerrit/#/c/1916/

Earlier entry methods without params such as

entry void foo(); 

were created as:

 void foo(void); in decl.h
and
 void foo() {..} in def.h

After the fix, CkEntryOptions was added as an optional parameter.
This creates

 void foo(CkEntryOptions *impl_e_opts=NULL) in decl.h 
and
 void foo(CkEntryOptions *impl_e_opts) {..} in def.h 

#6 Updated by Sam White over 2 years ago

The above fix makes the syntax work, but doesn't actually pass CkEntryOptions through the runtime. In the case of priorities, which make no guarantees about scheduling order, this doesn't break any semantic guarantees to the user, but if the user is using CkEntryOptions to set a group dependence, this breaks that promise.

#7 Updated by Nitin Bhat over 2 years ago

  • Status changed from In Progress to Implemented
  • % Done changed from 20 to 100

Fix: https://charm.cs.illinois.edu/gerrit/#/c/2392/

Charmxi now spits the code to set group dependency in the envelope for a group's constructor that takes no parameters.

#8 Updated by Phil Miller about 2 years ago

  • Copied to Bug #1519: Entry methods with no parameters ignore priority from CkEntryOptions added

#9 Updated by Phil Miller about 2 years ago

  • Subject changed from Entry methods with no parameters can't be called with CkEntryOptions, can't be prioritized to Entry methods with no parameters can't be called with CkEntryOptions, can't take group construction dependence.
  • Status changed from Implemented to Merged

Also available in: Atom PDF