Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync-method syntax support #19

Open
1 of 5 tasks
0xF6 opened this issue May 24, 2021 · 0 comments
Open
1 of 5 tasks

Sync-method syntax support #19

0xF6 opened this issue May 24, 2021 · 0 comments
Labels
area-compiler Area of compiler staff area-lexer Area of lexer tree feature language-specs priority 3 low size: M medium task (< 3 week)

Comments

@0xF6
Copy link
Member

0xF6 commented May 24, 2021

  • Proposed
  • Triage: Completed
  • Prototype: not started
  • Implementation: not started
  • Specification: not started

define sync in method declaration

public class Foo
{
   public sync fn(): void 
   { } 
}

Ishtar view (transformation result)

// non-static variant
public class Foo
{
   public fn(): void 
   { 
        Synchronicity.For(this);
        try
        {
            // ...
        }
        finally
        {
            Synchronicity.Release(this);
        }
   } 
}
// static variant
public static class Foo
{
   private static guarder: Object = new Object();
   public static fn(): void 
   { 
        Synchronicity.For(guarder);
        try
        { 
            // ...
        }
        finally
        {
            Synchronicity.Release(guarder);
        }
   } 
}
@0xF6 0xF6 added area-compiler Area of compiler staff area-lexer Area of lexer tree priority 3 low feature size: M medium task (< 3 week) language-specs labels May 24, 2021
@0xF6 0xF6 added this to the backlog milestone May 24, 2021
@0xF6 0xF6 mentioned this issue May 27, 2021
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-compiler Area of compiler staff area-lexer Area of lexer tree feature language-specs priority 3 low size: M medium task (< 3 week)
Projects
Development

No branches or pull requests

1 participant